73 lines
2.0 KiB
JavaScript
73 lines
2.0 KiB
JavaScript
describe("QueryString", function() {
|
|
|
|
describe("#navigateWithNewParam", function() {
|
|
it("sets the query string to include the given key/value pair", function() {
|
|
var windowLocation = {
|
|
search: ""
|
|
},
|
|
queryString = new j$.QueryString({
|
|
getWindowLocation: function() { return windowLocation }
|
|
});
|
|
|
|
queryString.navigateWithNewParam("foo", "bar baz");
|
|
|
|
expect(windowLocation.search).toMatch(/foo=bar%20baz/);
|
|
});
|
|
|
|
it("leaves existing params alone", function() {
|
|
var windowLocation = {
|
|
search: "?foo=bar"
|
|
},
|
|
queryString = new j$.QueryString({
|
|
getWindowLocation: function() { return windowLocation }
|
|
});
|
|
|
|
queryString.navigateWithNewParam("baz", "quux");
|
|
|
|
expect(windowLocation.search).toMatch(/foo=bar/);
|
|
expect(windowLocation.search).toMatch(/baz=quux/);
|
|
});
|
|
});
|
|
|
|
describe('#fullStringWithNewParam', function() {
|
|
it("gets the query string including the given key/value pair", function() {
|
|
var windowLocation = {
|
|
search: "?foo=bar"
|
|
},
|
|
queryString = new j$.QueryString({
|
|
getWindowLocation: function() { return windowLocation }
|
|
});
|
|
|
|
var result = queryString.fullStringWithNewParam("baz", "quux");
|
|
|
|
expect(result).toMatch(/foo=bar/);
|
|
expect(result).toMatch(/baz=quux/);
|
|
});
|
|
});
|
|
|
|
describe("#getParam", function() {
|
|
|
|
it("returns the value of the requested key", function() {
|
|
var windowLocation = {
|
|
search: "?baz=quux%20corge"
|
|
},
|
|
queryString = new j$.QueryString({
|
|
getWindowLocation: function() { return windowLocation }
|
|
});
|
|
|
|
expect(queryString.getParam("baz")).toEqual("quux corge");
|
|
});
|
|
|
|
it("returns null if the key is not present", function() {
|
|
var windowLocation = {
|
|
search: ""
|
|
},
|
|
queryString = new j$.QueryString({
|
|
getWindowLocation: function() { return windowLocation }
|
|
});
|
|
|
|
expect(queryString.getParam("baz")).toBeFalsy();
|
|
});
|
|
});
|
|
});
|