aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorStephen Blott2014-04-19 10:02:14 +0100
committerStephen Blott2014-04-19 10:02:14 +0100
commit5ea93cd18611d859867bdd80c44c886d29a7b958 (patch)
treed8cde4be68d9c2ae2e0d73d6d8ebfd9eced52e04 /tests
parenta2de5078f8d34c2b65b451556aff07a6a41399a5 (diff)
downloadvimium-5ea93cd18611d859867bdd80c44c886d29a7b958.tar.bz2
Add remote sync test for setting cleared.
Diffstat (limited to 'tests')
-rw-r--r--tests/unit_tests/settings_test.coffee9
-rw-r--r--tests/unit_tests/test_chrome_stubs.coffee9
2 files changed, 18 insertions, 0 deletions
diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee
index 07b96a30..9aec95dd 100644
--- a/tests/unit_tests/settings_test.coffee
+++ b/tests/unit_tests/settings_test.coffee
@@ -64,3 +64,12 @@ context "settings",
# Pull Sync's version of scrollStepSize, this should delete scrollStepSize in localStorage, because it's a default value.
Sync.pull()
assert.isFalse Settings.has 'scrollStepSize'
+
+ should "remote setting cleared", ->
+ # Prime localStorage.
+ Settings.set 'scrollStepSize', 20
+ assert.equal Settings.get('scrollStepSize'), 20
+ # Prime Sync with a non-default value.
+ chrome.storage.sync.set { scrollStepSize: JSON.stringify(40) }
+ chrome.storage.sync.remove 'scrollStepSize'
+ assert.isFalse Settings.has 'scrollStepSize'
diff --git a/tests/unit_tests/test_chrome_stubs.coffee b/tests/unit_tests/test_chrome_stubs.coffee
index f32de24f..dd8dccf8 100644
--- a/tests/unit_tests/test_chrome_stubs.coffee
+++ b/tests/unit_tests/test_chrome_stubs.coffee
@@ -16,6 +16,13 @@ global.chrome.storage.onChanged ||=
if @func
@func( @mkKeyValue(key,value), 'synced storage stub' )
+ callEmpty: (key) ->
+ chrome.runtime = { lastError: undefined }
+ if @func
+ items = {}
+ items[key] = {}
+ @func( items, 'synced storage stub' )
+
mkKeyValue: (key, value) ->
obj = {}
obj[key] = { newValue: value }
@@ -53,4 +60,6 @@ global.chrome.storage.sync ||=
delete @store[key]
if callback
callback()
+ # Now, generate (supposedly asynchronous) notification for listeners.
+ global.chrome.storage.onChanged.callEmpty(key)