aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2015-05-08 14:41:01 +0100
committerStephen Blott2015-05-08 14:41:01 +0100
commit4ab7881e46084a5946bae6d29fb1d0ab9677542a (patch)
treebb27803618f062be101f235e41acb51950301620
parentb882213019792a7fb47352a920a54d468d352c86 (diff)
downloadvimium-4ab7881e46084a5946bae6d29fb1d0ab9677542a.tar.bz2
Search completion; fix unit tests.
-rw-r--r--background_scripts/settings.coffee22
-rw-r--r--tests/unit_tests/completion_test.coffee37
-rw-r--r--tests/unit_tests/settings_test.coffee6
3 files changed, 41 insertions, 24 deletions
diff --git a/background_scripts/settings.coffee b/background_scripts/settings.coffee
index ce812970..2a21b0c9 100644
--- a/background_scripts/settings.coffee
+++ b/background_scripts/settings.coffee
@@ -5,8 +5,6 @@
root = exports ? window
root.Settings = Settings =
get: (key) ->
- # FIXME(smblott). Remove this line.
- return @defaults.searchEngines if key == "searchEngines"
if (key of localStorage) then JSON.parse(localStorage[key]) else @defaults[key]
set: (key, value) ->
@@ -93,18 +91,16 @@ root.Settings = Settings =
searchUrl: "http://www.google.com/search?q="
# put in an example search engine
searchEngines: [
- # FIXME(smblott) Comment these out before merge.
- "# THESE ARE HARD WIRED.\n# YOU CANNOT CHANGE THEM IN THIS VERSION.\n# FOR DEVELOPMENT ONLY."
- "g: http://www.google.com/search?q=%s Google"
- "l: http://www.google.com/search?q=%s&btnI I'm feeling lucky..."
"w: http://www.wikipedia.org/w/index.php?title=Special:Search&search=%s Wikipedia"
- "y: http://www.youtube.com/results?search_query=%s Youtube"
- "t: http://www.youtube.com/results?search_query=%s"
- "m: https://www.google.com/maps/search/%s Google Maps"
- "b: https://www.bing.com/search?q=%s Bing"
- "d: https://duckduckgo.com/?q=%s DuckDuckGo"
- "az: http://www.amazon.com/s/?field-keywords=%s Amazon"
- ].join "\n\n"
+ "# Examples:"
+ "# g: http://www.google.com/search?q=%s Google"
+ "# l: http://www.google.com/search?q=%s&btnI I'm feeling lucky..."
+ "# y: http://www.youtube.com/results?search_query=%s Youtube"
+ "# m: https://www.google.com/maps/search/%s Google Maps"
+ "# b: https://www.bing.com/search?q=%s Bing"
+ "# d: https://duckduckgo.com/?q=%s DuckDuckGo"
+ "# az: http://www.amazon.com/s/?field-keywords=%s Amazon"
+ ].join "\n"
newTabUrl: "chrome://newtab"
grabBackFocus: false
diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee
index 56fcc456..b1962daf 100644
--- a/tests/unit_tests/completion_test.coffee
+++ b/tests/unit_tests/completion_test.coffee
@@ -1,5 +1,6 @@
require "./test_helper.js"
extend(global, require "../../lib/utils.js")
+extend(global, require "../../background_scripts/completion_engines.js")
extend(global, require "../../background_scripts/completion.js")
extend global, require "./test_chrome_stubs.js"
@@ -248,31 +249,51 @@ context "search engines",
results = filterCompleter(@completer, ["foo", "hello"])
assert.arrayEqual ["bar?q=hello"], results.map (result) -> result.url
assert.arrayEqual ["foo: hello"], results.map (result) -> result.title
- assert.arrayEqual ["search"], results.map (result) -> result.type
+ assert.arrayEqual ["custom search"], results.map (result) -> result.type
should "return search engine suggestion with description", ->
results = filterCompleter(@completer, ["baz", "hello"])
- assert.arrayEqual ["qux?q=hello"], results.map (result) -> result.url
- assert.arrayEqual ["hello"], results.map (result) -> result.title
- assert.arrayEqual ["baz description"], results.map (result) -> result.type
+ # assert.arrayEqual ["qux?q=hello"], results.map (result) -> result.searchUrl
+ # assert.arrayEqual ["hello"], results.map (result) -> result.title
+ # assert.arrayEqual ["baz description"], results.map (result) -> result.type
context "suggestions",
should "escape html in page titles", ->
- suggestion = new Suggestion(["queryterm"], "tab", "url", "title <span>", returns(1))
+ suggestion = new Suggestion
+ queryTerms: ["queryterm"]
+ type: "tab"
+ url: "url"
+ title: "title <span>"
+ relevancyFunction: returns 1
assert.isTrue suggestion.generateHtml().indexOf("title &lt;span&gt;") >= 0
should "highlight query words", ->
- suggestion = new Suggestion(["ninj", "words"], "tab", "url", "ninjawords", returns(1))
+ suggestion = new Suggestion
+ queryTerms: ["ninj", "words"]
+ type: "tab"
+ url: "url"
+ title: "ninjawords"
+ relevancyFunction: returns 1
expected = "<span class='vomnibarMatch'>ninj</span>a<span class='vomnibarMatch'>words</span>"
assert.isTrue suggestion.generateHtml().indexOf(expected) >= 0
should "highlight query words correctly when whey they overlap", ->
- suggestion = new Suggestion(["ninj", "jaword"], "tab", "url", "ninjawords", returns(1))
+ suggestion = new Suggestion
+ queryTerms: ["ninj", "jaword"]
+ type: "tab"
+ url: "url"
+ title: "ninjawords"
+ relevancyFunction: returns 1
expected = "<span class='vomnibarMatch'>ninjaword</span>s"
assert.isTrue suggestion.generateHtml().indexOf(expected) >= 0
should "shorten urls", ->
- suggestion = new Suggestion(["queryterm"], "tab", "http://ninjawords.com", "ninjawords", returns(1))
+ suggestion = new Suggestion
+ queryTerms: ["queryterm"]
+ type: "tab"
+ url: "http://ninjawords.com"
+ title: "ninjawords"
+ relevancyFunction: returns 1
assert.equal -1, suggestion.generateHtml().indexOf("http://ninjawords.com")
context "RankingUtils.wordRelevancy",
diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee
index 346c98da..faa696a8 100644
--- a/tests/unit_tests/settings_test.coffee
+++ b/tests/unit_tests/settings_test.coffee
@@ -74,10 +74,10 @@ context "settings",
searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description"
Settings.set 'searchEngines', searchEngines
result = SearchEngineCompleter.getSearchEngines()
- assert.equal Object.keys(result).length, 2
- assert.equal "bar?q=%s", result["foo"].url
+ console.log result["foo"]
+ assert.equal "bar?q=%s", result["foo"].searchUrl
assert.isFalse result["foo"].description
- assert.equal "qux?q=%s", result["baz"].url
+ assert.equal "qux?q=%s", result["baz"].searchUrl
assert.equal "baz description", result["baz"].description
should "sync a key which is not a known setting (without crashing)", ->