diff options
Diffstat (limited to 'src/tests/tests/options.js')
-rw-r--r-- | src/tests/tests/options.js | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/src/tests/tests/options.js b/src/tests/tests/options.js new file mode 100644 index 0000000..2abeba8 --- /dev/null +++ b/src/tests/tests/options.js @@ -0,0 +1,105 @@ +(function () { + +QUnit.module("Options page utils"); + +let { getOriginsArray } = require("optionslib"); + +QUnit.test("getOriginsArray", (assert) => { + const origins = { + "allowed.com": "allow", + "blocked.org": "block", + "alsoblocked.org": "block", + "cookieblocked.biz": "cookieblock", + "UserAllowed.net": "user_allow", + "uuuserblocked.nyc": "user_block", + "dntDomain.co.uk": "dnt", + "another.allowed.domain.example": "allow", + }; + const originsSansAllowed = _.reduce( + origins, (memo, val, key) => { + if (val != "allow") { + memo[key] = val; + } + return memo; + }, {} + ); + + const tests = [ + { + msg: "Empty, no filters", + args: [{},], + expected: [] + }, + { + msg: "No filters (allowed domains are filtered out)", + args: [origins,], + expected: Object.keys(originsSansAllowed) + }, + { + msg: "Not-yet-blocked domains are shown", + args: [origins, null, null, null, true], + expected: Object.keys(origins) + }, + { + msg: "Type filter", + args: [origins, "", "user"], + expected: ["UserAllowed.net", "uuuserblocked.nyc"] + }, + { + msg: "Status filter", + args: [origins, "", "", "allow"], + expected: ["UserAllowed.net", "dntDomain.co.uk"] + }, + { + msg: "Text filter", + args: [origins, ".org"], + expected: ["blocked.org", "alsoblocked.org"] + }, + { + msg: "Text filter and domain case insensitivity", + args: [origins, "uSER"], + expected: ["UserAllowed.net", "uuuserblocked.nyc"] + }, + { + msg: "Text filter with extra space", + args: [origins, " .org"], + expected: ["blocked.org", "alsoblocked.org"] + }, + { + msg: "Negative text filter", + args: [origins, "-.org"], + expected: [ + "cookieblocked.biz", + "UserAllowed.net", + "uuuserblocked.nyc", + "dntDomain.co.uk", + ] + }, + { + msg: "Multiple negative text filter", + args: [origins, "-.net -cookie -.co.uk"], + expected: ["blocked.org", "alsoblocked.org", "uuuserblocked.nyc"] + }, + { + msg: "Multiple text filters", + args: [origins, " -also .biz .org "], + expected: ["blocked.org", "cookieblocked.biz"] + }, + { + msg: "All filters together", + args: [origins, ".net", "user", "allow", true], + expected: ["UserAllowed.net"] + }, + ]; + + tests.forEach((test) => { + assert.deepEqual( + getOriginsArray.apply(window, test.args), + test.expected, + test.msg + ); + }); + +}); + +}()); |