diff --git a/lib/util/urltils.js b/lib/util/urltils.js index 6999683bbb..e346bd09d4 100644 --- a/lib/util/urltils.js +++ b/lib/util/urltils.js @@ -71,9 +71,9 @@ module.exports = { parseParameters : function parseParameters(requestURL) { var parsed = url.parse(requestURL, true) , parameters = {} - - if (parsed.search !== '') { + + if (parsed.search) { Object.keys(parsed.query).forEach(function cb_forEach(key) { if (parsed.query[key] === '' && parsed.path.indexOf(key + '=') < 0) { parameters[key] = true diff --git a/test/unit/urltils.test.js b/test/unit/urltils.test.js index 5c3f07228b..0014d74597 100644 --- a/test/unit/urltils.test.js +++ b/test/unit/urltils.test.js @@ -4,7 +4,7 @@ var path = require('path') , chai = require('chai') , expect = chai.expect , urltils = require('../../lib/util/urltils.js') - + describe("NR URL utilities", function () { describe("scrubbing URLs", function () { @@ -13,6 +13,20 @@ describe("NR URL utilities", function () { }) }) + describe("parsing parameters", function () { + it("should find empty object of params in url lacking query", function () { + expect(urltils.parseParameters('/favicon.ico')).deep.equal({}); + }) + + it("should find v param in url containing ?v with no value", function () { + expect(urltils.parseParameters('/status?v')).deep.equal({v:true}); + }) + + it("should find v param with value in url containing ?v=1", function () { + expect(urltils.parseParameters('/status?v=1')).deep.equal({v:'1'}); + }) + }) + describe("determining whether an HTTP status code is an error", function () { var config = {error_collector : {ignore_status_codes : []}} @@ -129,7 +143,7 @@ describe("NR URL utilities", function () { var config , source , dest - + beforeEach(function () { config = {