aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/dom_tests/chrome.coffee8
-rw-r--r--tests/dom_tests/dom_tests.coffee32
-rw-r--r--tests/dom_tests/dom_tests.html1
-rw-r--r--tests/unit_tests/exclusion_test.coffee1
-rw-r--r--tests/unit_tests/settings_test.coffee12
-rw-r--r--tests/unit_tests/test_chrome_stubs.coffee4
-rw-r--r--tests/unit_tests/utils_test.coffee1
7 files changed, 37 insertions, 22 deletions
diff --git a/tests/dom_tests/chrome.coffee b/tests/dom_tests/chrome.coffee
index 4c9bfa52..d4e6930d 100644
--- a/tests/dom_tests/chrome.coffee
+++ b/tests/dom_tests/chrome.coffee
@@ -7,6 +7,9 @@ root.chromeMessages = []
document.hasFocus = -> true
+fakeManifest =
+ version: "1.51"
+
root.chrome =
runtime:
connect: ->
@@ -18,16 +21,17 @@ root.chrome =
onMessage:
addListener: ->
sendMessage: (message) -> chromeMessages.unshift message
- getManifest: ->
+ getManifest: -> fakeManifest
getURL: (url) -> "../../#{url}"
storage:
local:
get: ->
set: ->
sync:
- get: ->
+ get: (_, callback) -> callback? {}
set: ->
onChanged:
addListener: ->
extension:
inIncognitoContext: false
+ getURL: (url) -> chrome.runtime.getURL url
diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee
index 8c2b73c3..8f293075 100644
--- a/tests/dom_tests/dom_tests.coffee
+++ b/tests/dom_tests/dom_tests.coffee
@@ -34,12 +34,20 @@ initializeModeState = ->
handlerStack.bubbleEvent "registerKeyQueue",
keyQueue: ""
+# Tell Settings that it's been loaded.
+Settings.isLoaded = true
+
+# Shoulda.js doesn't support async code, so we try not to use any.
+Utils.nextTick = (func) -> func()
+
#
# Retrieve the hint markers as an array object.
#
getHintMarkers = ->
Array::slice.call document.getElementsByClassName("vimiumHintMarker"), 0
+stubSettings = (key, value) -> stub Settings.cache, key, JSON.stringify value
+
#
# Generate tests that are common to both default and filtered
# link hinting modes.
@@ -52,8 +60,8 @@ createGeneralHintTests = (isFilteredMode) ->
initializeModeState()
testContent = "<a>test</a>" + "<a>tress</a>"
document.getElementById("test-div").innerHTML = testContent
- stub settings.values, "filterLinkHints", false
- stub settings.values, "linkHintCharacters", "ab"
+ stubSettings "filterLinkHints", false
+ stubSettings "linkHintCharacters", "ab"
tearDown ->
document.getElementById("test-div").innerHTML = ""
@@ -92,8 +100,8 @@ context "Test link hints for focusing input elements correctly",
testDiv = document.getElementById("test-div")
testDiv.innerHTML = ""
- stub settings.values, "filterLinkHints", false
- stub settings.values, "linkHintCharacters", "ab"
+ stubSettings "filterLinkHints", false
+ stubSettings "linkHintCharacters", "ab"
# Every HTML5 input type except for hidden. We should be able to activate all of them with link hints.
inputTypes = ["button", "checkbox", "color", "date", "datetime", "datetime-local", "email", "file",
@@ -129,12 +137,11 @@ context "Alphabetical link hints",
setup ->
initializeModeState()
- stub settings.values, "filterLinkHints", false
- stub settings.values, "linkHintCharacters", "ab"
+ stubSettings "filterLinkHints", false
+ stubSettings "linkHintCharacters", "ab"
# Three hints will trigger double hint chars.
createLinks 3
- LinkHints.init()
LinkHints.activateMode()
tearDown ->
@@ -161,8 +168,8 @@ context "Filtered link hints",
# elements.
setup ->
- stub settings.values, "filterLinkHints", true
- stub settings.values, "linkHintNumbers", "0123456789"
+ stubSettings "filterLinkHints", true
+ stubSettings "linkHintNumbers", "0123456789"
context "Text hints",
@@ -170,7 +177,6 @@ context "Filtered link hints",
initializeModeState()
testContent = "<a>test</a>" + "<a>tress</a>" + "<a>trait</a>" + "<a>track<img alt='alt text'/></a>"
document.getElementById("test-div").innerHTML = testContent
- LinkHints.init()
LinkHints.activateMode()
tearDown ->
@@ -289,7 +295,7 @@ context "Find prev / next links",
<a href='#first'>nextcorrupted</a>
<a href='#second'>next page</a>
"""
- stub settings.values, "nextPatterns", "next"
+ stubSettings "nextPatterns", "next"
goNext()
assert.equal '#second', window.location.hash
@@ -297,7 +303,7 @@ context "Find prev / next links",
document.getElementById("test-div").innerHTML = """
<a href='#first'>&gt;&gt;</a>
"""
- stub settings.values, "nextPatterns", ">>"
+ stubSettings "nextPatterns", ">>"
goNext()
assert.equal '#first', window.location.hash
@@ -306,7 +312,7 @@ context "Find prev / next links",
<a href='#first'>lorem ipsum next</a>
<a href='#second'>next!</a>
"""
- stub settings.values, "nextPatterns", "next"
+ stubSettings "nextPatterns", "next"
goNext()
assert.equal '#second', window.location.hash
diff --git a/tests/dom_tests/dom_tests.html b/tests/dom_tests/dom_tests.html
index 5ccd39e7..f7cc430d 100644
--- a/tests/dom_tests/dom_tests.html
+++ b/tests/dom_tests/dom_tests.html
@@ -35,6 +35,7 @@
<script type="text/javascript" src="../../lib/rect.js"></script>
<script type="text/javascript" src="../../lib/handler_stack.js"></script>
<script type="text/javascript" src="../../lib/clipboard.js"></script>
+ <script type="text/javascript" src="../../lib/settings.js"></script>
<script type="text/javascript" src="../../content_scripts/ui_component.js"></script>
<script type="text/javascript" src="../../content_scripts/link_hints.js"></script>
<script type="text/javascript" src="../../content_scripts/vomnibar.js"></script>
diff --git a/tests/unit_tests/exclusion_test.coffee b/tests/unit_tests/exclusion_test.coffee
index 28c17a2f..0e4b87bc 100644
--- a/tests/unit_tests/exclusion_test.coffee
+++ b/tests/unit_tests/exclusion_test.coffee
@@ -15,7 +15,6 @@ root.Marks =
extend(global, require "../../lib/utils.js")
Utils.getCurrentVersion = -> '1.44'
extend(global,require "../../lib/settings.js")
-Settings.init()
extend(global, require "../../background_scripts/exclusions.js")
extend(global, require "../../background_scripts/commands.js")
extend(global, require "../../background_scripts/main.js")
diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee
index ded7b5f8..08145190 100644
--- a/tests/unit_tests/settings_test.coffee
+++ b/tests/unit_tests/settings_test.coffee
@@ -14,7 +14,6 @@ context "settings",
stub global, 'localStorage', {}
Settings.cache = global.localStorage # Point the settings cache to the new localStorage object.
Settings.postUpdateHooks = {} # Avoid running update hooks which include calls to outside of settings.
- Settings.init()
should "save settings in localStorage as JSONified strings", ->
Settings.set 'dummy', ""
@@ -39,16 +38,23 @@ context "settings",
Settings.clear 'scrollStepSize'
assert.equal Settings.get('scrollStepSize'), 60
+context "synced settings",
+
+ setup ->
+ stub global, 'localStorage', {}
+ Settings.cache = global.localStorage # Point the settings cache to the new localStorage object.
+ Settings.postUpdateHooks = {} # Avoid running update hooks which include calls to outside of settings.
+
should "propagate non-default value via synced storage listener", ->
Settings.set 'scrollStepSize', 20
assert.equal Settings.get('scrollStepSize'), 20
- Settings.Sync.handleStorageUpdate { scrollStepSize: { newValue: "40" } }
+ Settings.propagateChangesFromChromeStorage { scrollStepSize: { newValue: "40" } }
assert.equal Settings.get('scrollStepSize'), 40
should "propagate default value via synced storage listener", ->
Settings.set 'scrollStepSize', 20
assert.equal Settings.get('scrollStepSize'), 20
- Settings.Sync.handleStorageUpdate { scrollStepSize: { newValue: "60" } }
+ Settings.propagateChangesFromChromeStorage { scrollStepSize: { newValue: "60" } }
assert.isFalse Settings.has 'scrollStepSize'
should "propagate non-default values from synced storage", ->
diff --git a/tests/unit_tests/test_chrome_stubs.coffee b/tests/unit_tests/test_chrome_stubs.coffee
index 16f0e144..fe2fc298 100644
--- a/tests/unit_tests/test_chrome_stubs.coffee
+++ b/tests/unit_tests/test_chrome_stubs.coffee
@@ -70,14 +70,14 @@ exports.chrome =
chrome.runtime.lastError = undefined
key_value = {}
key_value[key] = { newValue: value }
- @func(key_value,'synced storage stub') if @func
+ @func(key_value,'sync') if @func
callEmpty: (key) ->
chrome.runtime.lastError = undefined
if @func
items = {}
items[key] = {}
- @func(items,'synced storage stub')
+ @func(items,'sync')
session:
MAX_SESSION_RESULTS: 25
diff --git a/tests/unit_tests/utils_test.coffee b/tests/unit_tests/utils_test.coffee
index f9ed3636..67c3b333 100644
--- a/tests/unit_tests/utils_test.coffee
+++ b/tests/unit_tests/utils_test.coffee
@@ -3,7 +3,6 @@ extend global, require "./test_chrome_stubs.js"
extend(global, require "../../lib/utils.js")
Utils.getCurrentVersion = -> '1.43'
extend(global, require "../../lib/settings.js")
-Settings.init()
context "isUrl",
should "accept valid URLs", ->