1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/bower_components/query-string/test.js

83 lines
3.2 KiB
JavaScript
Raw Normal View History

2018-10-23 01:05:09 +03:00
"use strict";
var assert = require("assert"),
qs = require("./");
describe(".parse()", function() {
it("query strings starting with a `?`", function() {
assert.deepEqual(qs.parse("?foo=bar"), {
foo: "bar"
})
}), it("query strings starting with a `#`", function() {
assert.deepEqual(qs.parse("#foo=bar"), {
foo: "bar"
})
}), it("query strings starting with a `&", function() {
assert.deepEqual(qs.parse("&foo=bar&foo=baz"), {
foo: ["bar", "baz"]
})
}), it("parse a query string", function() {
assert.deepEqual(qs.parse("foo=bar"), {
foo: "bar"
})
}), it("parse multiple query string", function() {
assert.deepEqual(qs.parse("foo=bar&key=val"), {
foo: "bar",
key: "val"
})
}), it("parse query string without a value", function() {
assert.deepEqual(qs.parse("foo"), {
foo: null
}), assert.deepEqual(qs.parse("foo&key"), {
foo: null,
key: null
}), assert.deepEqual(qs.parse("foo=bar&key"), {
foo: "bar",
key: null
})
}), it("return empty object if no qss can be found", function() {
assert.deepEqual(qs.parse("?"), {}), assert.deepEqual(qs.parse("&"), {}), assert.deepEqual(qs.parse("#"), {}), assert.deepEqual(qs.parse(" "), {})
}), it("handle `+` correctly", function() {
assert.deepEqual(qs.parse("foo+faz=bar+baz++"), {
"foo faz": "bar baz "
})
}), it("handle multiple of the same key", function() {
assert.deepEqual(qs.parse("foo=bar&foo=baz"), {
foo: ["bar", "baz"]
})
}), it("query strings params including embedded `=`", function() {
assert.deepEqual(qs.parse("?param=http%3A%2F%2Fsomeurl%3Fid%3D2837"), {
param: "http://someurl?id=2837"
})
})
}), describe(".stringify()", function() {
it("stringify", function() {
assert.strictEqual(qs.stringify({
foo: "bar"
}), "foo=bar"), assert.strictEqual(qs.stringify({
foo: "bar",
bar: "baz"
}), "bar=baz&foo=bar")
}), it("different types", function() {
assert.strictEqual(qs.stringify(), ""), assert.strictEqual(qs.stringify(0), "")
}), it("URI encode", function() {
assert.strictEqual(qs.stringify({
"foo bar": "baz faz"
}), "foo%20bar=baz%20faz")
}), it("handle array value", function() {
assert.strictEqual(qs.stringify({
abc: "abc",
foo: ["bar", "baz"]
}), "abc=abc&foo=bar&foo=baz")
})
}), describe(".extract()", function() {
it("should extract qs from url", function() {
assert.equal(qs.extract("http://foo.bar/?abc=def&hij=klm"), "abc=def&hij=klm"), assert.equal(qs.extract("http://foo.bar/?"), "")
}), it("should handle strings not containing qs", function() {
assert.equal(qs.extract("http://foo.bar/"), ""), assert.equal(qs.extract(""), "")
}), it("should throw for invalid values", function() {
assert.throws(function() {
qs.extract(null)
}, TypeError), assert.throws(function() {
qs.extract(void 0)
}, TypeError)
})
});