diff options
| author | Stephen Blott | 2015-06-20 06:15:45 +0100 |
|---|---|---|
| committer | Stephen Blott | 2015-06-20 07:00:24 +0100 |
| commit | 1e671e28fd1f348b17ee16351c1a0b03f9d15e4f (patch) | |
| tree | f8f8b21e2c57a1aac998383f2e52cda10c080ba8 | |
| parent | 21a5405e9b12201ed96c7de93d94410a3d448979 (diff) | |
| download | vimium-1e671e28fd1f348b17ee16351c1a0b03f9d15e4f.tar.bz2 | |
Add test that every option has a default value.
This prevents issues like #1731 and is an (better) alternative to #1732.
| -rw-r--r-- | pages/options.coffee | 41 | ||||
| -rw-r--r-- | tests/unit_tests/completion_test.coffee | 3 | ||||
| -rw-r--r-- | tests/unit_tests/settings_test.coffee | 8 | ||||
| -rw-r--r-- | tests/unit_tests/test_chrome_stubs.coffee | 5 |
4 files changed, 35 insertions, 22 deletions
diff --git a/pages/options.coffee b/pages/options.coffee index 88acbf51..1cbe88fa 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -181,6 +181,24 @@ class ExclusionRulesOnPopupOption extends ExclusionRulesOption else @url + "*" +Options = + exclusionRules: ExclusionRulesOption + filterLinkHints: CheckBoxOption + hideHud: CheckBoxOption + keyMappings: TextOption + linkHintCharacters: NonEmptyTextOption + linkHintNumbers: NonEmptyTextOption + newTabUrl: NonEmptyTextOption + nextPatterns: NonEmptyTextOption + previousPatterns: NonEmptyTextOption + regexFindMode: CheckBoxOption + scrollStepSize: NumberOption + smoothScroll: CheckBoxOption + grabBackFocus: CheckBoxOption + searchEngines: TextOption + searchUrl: NonEmptyTextOption + userDefinedLinkHintCss: TextOption + initOptionsPage = -> onUpdated = -> $("saveOptions").removeAttribute "disabled" @@ -238,26 +256,8 @@ initOptionsPage = -> document.activeElement.blur() if document?.activeElement?.blur saveOptions() - options = - exclusionRules: ExclusionRulesOption - filterLinkHints: CheckBoxOption - hideHud: CheckBoxOption - keyMappings: TextOption - linkHintCharacters: NonEmptyTextOption - linkHintNumbers: NonEmptyTextOption - newTabUrl: NonEmptyTextOption - nextPatterns: NonEmptyTextOption - previousPatterns: NonEmptyTextOption - regexFindMode: CheckBoxOption - scrollStepSize: NumberOption - smoothScroll: CheckBoxOption - grabBackFocus: CheckBoxOption - searchEngines: TextOption - searchUrl: NonEmptyTextOption - userDefinedLinkHintCss: TextOption - # Populate options. The constructor adds each new object to "Option.all". - for name, type of options + for name, type of Options new type(name,onUpdated) maintainLinkHintsView() @@ -319,3 +319,6 @@ document.addEventListener "DOMContentLoaded", -> xhr.send() +# Exported for tests. +root = exports ? window +root.Options = Options diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index 4a0cf746..9ce0a466 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -4,9 +4,6 @@ extend(global, require "../../background_scripts/completion_engines.js") extend(global, require "../../background_scripts/completion.js") extend global, require "./test_chrome_stubs.js" -global.document = - createElement: -> {} - context "bookmark completer", setup -> @bookmark3 = { title: "bookmark3", url: "bookmark3.com" } diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee index 08145190..47abe97f 100644 --- a/tests/unit_tests/settings_test.coffee +++ b/tests/unit_tests/settings_test.coffee @@ -7,6 +7,7 @@ Utils.isBackgroundPage = -> true Utils.isExtensionPage = -> true global.localStorage = {} extend(global,require "../../lib/settings.js") +extend(global,require "../../pages/options.js") context "settings", @@ -80,3 +81,10 @@ context "synced settings", should "sync a key which is not a known setting (without crashing)", -> chrome.storage.sync.set { notASetting: JSON.stringify("notAUsefullValue") } + +context "default valuess", + + should "have a default value for every option", -> + for own key of Options + assert.isTrue key of Settings.defaults + diff --git a/tests/unit_tests/test_chrome_stubs.coffee b/tests/unit_tests/test_chrome_stubs.coffee index fe2fc298..8a677990 100644 --- a/tests/unit_tests/test_chrome_stubs.coffee +++ b/tests/unit_tests/test_chrome_stubs.coffee @@ -8,6 +8,10 @@ exports.window = {} exports.localStorage = {} +global.document = + createElement: -> {} + addEventListener: -> + exports.chrome = runtime: getManifest: () -> @@ -21,6 +25,7 @@ exports.chrome = extension: getURL: (path) -> path + getBackgroundPage: -> {} tabs: onSelectionChanged: |
