From 1debac63fcc71c88427da9b1ae450067c15cd2b2 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 1 May 2015 12:20:19 +0100 Subject: Rename SearchEngineCompleter to CustomSearchEngineCompleter. The name "SearchEngineCompleter" is more appropriate for completions actually delivered by a search engine. Also, what was SearchEngineCompleter is usually referred to as "custom search engines" elsewhere. --- tests/unit_tests/completion_test.coffee | 4 ++-- tests/unit_tests/settings_test.coffee | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index 56fcc456..39437b52 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -239,10 +239,10 @@ context "search engines", setup -> searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" Settings.set 'searchEngines', searchEngines - @completer = new SearchEngineCompleter() + @completer = new CustomSearchEngineCompleter() # note, I couldn't just call @completer.refresh() here as I couldn't set root.Settings without errors # workaround is below, would be good for someone that understands the testing system better than me to improve - @completer.searchEngines = SearchEngineCompleter.getSearchEngines() + @completer.searchEngines = CustomSearchEngineCompleter.getSearchEngines() should "return search engine suggestion without description", -> results = filterCompleter(@completer, ["foo", "hello"]) diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee index 346c98da..a67b69fa 100644 --- a/tests/unit_tests/settings_test.coffee +++ b/tests/unit_tests/settings_test.coffee @@ -73,7 +73,7 @@ context "settings", should "set search engines, retrieve them correctly and check that they have been parsed correctly", -> searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" Settings.set 'searchEngines', searchEngines - result = SearchEngineCompleter.getSearchEngines() + result = CustomSearchEngineCompleter.getSearchEngines() assert.equal Object.keys(result).length, 2 assert.equal "bar?q=%s", result["foo"].url assert.isFalse result["foo"].description -- cgit v1.2.3 From 136b132c81ae4f7a3b296109427fd757ca05dacf Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Mon, 4 May 2015 06:35:22 +0100 Subject: Search completion; tweak scoring and synchronization. --- tests/unit_tests/completion_test.coffee | 4 ++-- tests/unit_tests/settings_test.coffee | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index 39437b52..56fcc456 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -239,10 +239,10 @@ context "search engines", setup -> searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" Settings.set 'searchEngines', searchEngines - @completer = new CustomSearchEngineCompleter() + @completer = new SearchEngineCompleter() # note, I couldn't just call @completer.refresh() here as I couldn't set root.Settings without errors # workaround is below, would be good for someone that understands the testing system better than me to improve - @completer.searchEngines = CustomSearchEngineCompleter.getSearchEngines() + @completer.searchEngines = SearchEngineCompleter.getSearchEngines() should "return search engine suggestion without description", -> results = filterCompleter(@completer, ["foo", "hello"]) diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee index a67b69fa..346c98da 100644 --- a/tests/unit_tests/settings_test.coffee +++ b/tests/unit_tests/settings_test.coffee @@ -73,7 +73,7 @@ context "settings", should "set search engines, retrieve them correctly and check that they have been parsed correctly", -> searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" Settings.set 'searchEngines', searchEngines - result = CustomSearchEngineCompleter.getSearchEngines() + result = SearchEngineCompleter.getSearchEngines() assert.equal Object.keys(result).length, 2 assert.equal "bar?q=%s", result["foo"].url assert.isFalse result["foo"].description -- cgit v1.2.3 From 4ab7881e46084a5946bae6d29fb1d0ab9677542a Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 8 May 2015 14:41:01 +0100 Subject: Search completion; fix unit tests. --- tests/unit_tests/completion_test.coffee | 37 ++++++++++++++++++++++++++------- tests/unit_tests/settings_test.coffee | 6 +++--- 2 files changed, 32 insertions(+), 11 deletions(-) (limited to 'tests') 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 ", returns(1)) + suggestion = new Suggestion + queryTerms: ["queryterm"] + type: "tab" + url: "url" + title: "title " + relevancyFunction: returns 1 assert.isTrue suggestion.generateHtml().indexOf("title <span>") >= 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 = "ninjawords" 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 = "ninjawords" 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)", -> -- cgit v1.2.3 From f6bd6c0fb95f5e0f2dea5088539a12baf6d3d708 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 8 May 2015 14:47:16 +0100 Subject: Search completion; fix DOM tests. --- tests/unit_tests/settings_test.coffee | 1 - 1 file changed, 1 deletion(-) (limited to 'tests') diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee index faa696a8..52eec30d 100644 --- a/tests/unit_tests/settings_test.coffee +++ b/tests/unit_tests/settings_test.coffee @@ -74,7 +74,6 @@ context "settings", searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" Settings.set 'searchEngines', searchEngines result = SearchEngineCompleter.getSearchEngines() - console.log result["foo"] assert.equal "bar?q=%s", result["foo"].searchUrl assert.isFalse result["foo"].description assert.equal "qux?q=%s", result["baz"].searchUrl -- cgit v1.2.3 From 6fd0e15b96325222abf1a19886bd5e0fb48fcdbb Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sat, 9 May 2015 08:30:29 +0100 Subject: Search completion; refactor SearchCompleter activation. --- tests/unit_tests/completion_test.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index b1962daf..b9a062f2 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -486,7 +486,7 @@ context "TabRecency", # A convenience wrapper around completer.filter() so it can be called synchronously in tests. filterCompleter = (completer, queryTerms) -> results = [] - completer.filter(queryTerms, (completionResults) -> results = completionResults) + completer.filter({ queryTerms }, (completionResults) -> results = completionResults) results hours = (n) -> 1000 * 60 * 60 * n -- cgit v1.2.3 From d73775057d443a53668f6a93fe45cc4a4b412de7 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sat, 9 May 2015 11:30:59 +0100 Subject: Search completion; complete commmon search term. --- tests/dom_tests/vomnibar_test.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/dom_tests/vomnibar_test.coffee b/tests/dom_tests/vomnibar_test.coffee index 0e02bb7b..e32c050d 100644 --- a/tests/dom_tests/vomnibar_test.coffee +++ b/tests/dom_tests/vomnibar_test.coffee @@ -14,7 +14,7 @@ context "Keep selection within bounds", oldGetCompleter = vomnibarFrame.Vomnibar.getCompleter.bind vomnibarFrame.Vomnibar stub vomnibarFrame.Vomnibar, 'getCompleter', (name) => completer = oldGetCompleter name - stub completer, 'filter', (query, callback) => callback(@completions) + stub completer, 'filter', (query, callback) => callback results: @completions completer # Shoulda.js doesn't support async tests, so we have to hack around. -- cgit v1.2.3 From 311b35e416053a0d5d03eaf7eb894375f6e0f20d Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sat, 9 May 2015 16:47:28 +0100 Subject: Search completion; tweaks and tests. --- tests/unit_tests/completion_test.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index b9a062f2..b45c99dd 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -248,8 +248,8 @@ context "search engines", should "return search engine suggestion without description", -> 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 ["custom search"], results.map (result) -> result.type + assert.arrayEqual ["hello"], results.map (result) -> result.title + assert.arrayEqual ["search [foo]"], results.map (result) -> result.type should "return search engine suggestion with description", -> results = filterCompleter(@completer, ["baz", "hello"]) -- cgit v1.2.3 From 313a1f96d666f23c2bc75ef340f0f828319e127c Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sun, 10 May 2015 05:35:50 +0100 Subject: Search completion; refactor searchEngineCompleter. This revamps how search-engine configuration is handled, and revises some rather strange legacy code. --- tests/unit_tests/completion_test.coffee | 21 --------------------- tests/unit_tests/settings_test.coffee | 9 --------- 2 files changed, 30 deletions(-) (limited to 'tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index b45c99dd..7711dac4 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -236,27 +236,6 @@ context "tab completer", assert.arrayEqual ["tab2.com"], results.map (tab) -> tab.url assert.arrayEqual [2], results.map (tab) -> tab.tabId -context "search engines", - setup -> - searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" - Settings.set 'searchEngines', searchEngines - @completer = new SearchEngineCompleter() - # note, I couldn't just call @completer.refresh() here as I couldn't set root.Settings without errors - # workaround is below, would be good for someone that understands the testing system better than me to improve - @completer.searchEngines = SearchEngineCompleter.getSearchEngines() - - should "return search engine suggestion without description", -> - results = filterCompleter(@completer, ["foo", "hello"]) - assert.arrayEqual ["bar?q=hello"], results.map (result) -> result.url - assert.arrayEqual ["hello"], results.map (result) -> result.title - assert.arrayEqual ["search [foo]"], 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.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 diff --git a/tests/unit_tests/settings_test.coffee b/tests/unit_tests/settings_test.coffee index 52eec30d..4cd20211 100644 --- a/tests/unit_tests/settings_test.coffee +++ b/tests/unit_tests/settings_test.coffee @@ -70,14 +70,5 @@ context "settings", chrome.storage.sync.set { scrollStepSize: JSON.stringify(message) } assert.equal message, Sync.message - should "set search engines, retrieve them correctly and check that they have been parsed correctly", -> - searchEngines = "foo: bar?q=%s\n# comment\nbaz: qux?q=%s baz description" - Settings.set 'searchEngines', searchEngines - result = SearchEngineCompleter.getSearchEngines() - assert.equal "bar?q=%s", result["foo"].searchUrl - assert.isFalse result["foo"].description - 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)", -> chrome.storage.sync.set { notASetting: JSON.stringify("notAUsefullValue") } -- cgit v1.2.3