aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_scripts/exclusions.coffee2
-rw-r--r--tests/unit_tests/exclusion_test.coffee50
2 files changed, 18 insertions, 34 deletions
diff --git a/background_scripts/exclusions.coffee b/background_scripts/exclusions.coffee
index f2dd14c8..467e5e70 100644
--- a/background_scripts/exclusions.coffee
+++ b/background_scripts/exclusions.coffee
@@ -15,7 +15,7 @@ RegexpCache =
# The Exclusions class manages the exclusion rule setting.
# An exclusion is an object with two attributes: pattern and passKeys.
-# The exclusions are an array of such objects (because the order matters).
+# The exclusions are an array of such objects.
root.Exclusions = Exclusions =
# Make RegexpCache, which is required on the page popup, accessible via the Exclusions object.
diff --git a/tests/unit_tests/exclusion_test.coffee b/tests/unit_tests/exclusion_test.coffee
index 25bd8125..b3ed7194 100644
--- a/tests/unit_tests/exclusion_test.coffee
+++ b/tests/unit_tests/exclusion_test.coffee
@@ -25,49 +25,33 @@ extend(global, require "../../background_scripts/main.js")
#
context "Excluded URLs and pass keys",
- # These tests have no setup, they use the default values from settings.coffee.
+ setup ->
+ Exclusions.postUpdateHook(
+ [
+ { pattern: "http*://mail.google.com/*", passKeys: "" }
+ { pattern: "http*://www.facebook.com/*", passKeys: "abab" }
+ { pattern: "http*://www.facebook.com/*", passKeys: "cdcd" }
+ { pattern: "http*://www.bbc.com/*", passKeys: "" }
+ { pattern: "http*://www.bbc.com/*", passKeys: "ab" }
+ ])
should "be disabled for excluded sites", ->
- rule = isEnabledForUrl({ url: 'http://www.google.com/calendar/page' })
- assert.isFalse rule.isEnableForUrl
+ rule = isEnabledForUrl({ url: 'http://mail.google.com/calendar/page' })
+ assert.isFalse rule.isEnabledForUrl
assert.isFalse rule.passKeys
- should "be enabled, but with pass keys", ->
- rule = isEnabledForUrl({ url: 'https://www.facebook.com/something' })
- assert.isTrue rule.isEnabledForUrl
+ should "be disabled for excluded sites, one exclusion", ->
+ rule = isEnabledForUrl({ url: 'http://www.bbc.com/calendar/page' })
+ assert.isFalse rule.isEnabledForUrl
assert.isFalse rule.passKeys
- addExclusionRule("http*://www.facebook.com/*","oO")
+
+ should "be enabled, but with pass keys", ->
rule = isEnabledForUrl({ url: 'https://www.facebook.com/something' })
assert.isTrue rule.isEnabledForUrl
- assert.equal rule.passKeys, 'oO'
+ assert.equal rule.passKeys, 'abcd'
should "be enabled", ->
rule = isEnabledForUrl({ url: 'http://www.twitter.com/pages' })
assert.isTrue rule.isEnabledForUrl
assert.isFalse rule.passKeys
- should "add a new excluded URL", ->
- rule = isEnabledForUrl({ url: 'http://www.example.com/page' })
- assert.isTrue rule.isEnabledForUrl
- addExclusionRule("http://www.example.com*")
- rule = isEnabledForUrl({ url: 'http://www.example.com/page' })
- assert.isFalse rule.isEnabledForUrl
- assert.isFalse rule.passKeys
-
- should "add a new excluded URL with passkeys", ->
- rule = isEnabledForUrl({ url: 'http://www.anotherexample.com/page' })
- assert.isTrue rule.isEnabledForUrl
- addExclusionRule("http://www.anotherexample.com/*","jk")
- rule = isEnabledForUrl({ url: 'http://www.anotherexample.com/page' })
- assert.isTrue rule.isEnabledForUrl
- assert.equal rule.passKeys, 'jk'
-
- should "update an existing excluded URL with passkeys", ->
- rule = isEnabledForUrl({ url: 'http://mail.google.com/page' })
- assert.isFalse rule.isEnabledForUrl
- assert.isFalse rule.passKeys
- addExclusionRule("http*://mail.google.com/*","jknp")
- rule = isEnabledForUrl({ url: 'http://mail.google.com/page' })
- assert.isTrue rule.isEnabledForUrl
- assert.equal rule.passKeys, 'jknp'
-