From a61de15c2f21e2a27f09b088dea09c1cefe699d1 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sat, 8 Nov 2014 06:51:44 +0000 Subject: Tabs order; add tests. --- tests/unit_tests/completion_test.coffee | 20 +++++++++++++++++++- tests/unit_tests/test_chrome_stubs.coffee | 4 ++++ 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'tests/unit_tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index 811436a9..ee758dbb 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -1,8 +1,8 @@ require "./test_helper.js" extend(global, require "../../lib/utils.js") extend(global, require "../../background_scripts/completion.js") +extend global, require "./test_chrome_stubs.js" -global.chrome = {} global.document = createElement: -> {} @@ -399,6 +399,24 @@ context "RegexpCache", should "search for a string with a prefix/suffix (negative case)", -> assert.isTrue "hound dog".search(RegexpCache.get("do", "\\b", "\\b")) == -1 +context "TabRecency", + setup -> + @tabRecency = new TabRecency() + @tabRecency.add 3 + @tabRecency.add 2 + @tabRecency.add 1 + @tabRecency.add 4 + + should "give a high score to the most recent tab", -> + assert.isTrue @tabRecency.recencyScore(4) < @tabRecency.recencyScore 1 + assert.isTrue @tabRecency.recencyScore(3) < @tabRecency.recencyScore 1 + assert.isTrue @tabRecency.recencyScore(2) < @tabRecency.recencyScore 1 + + should "give a low score to the current tab", -> + assert.isTrue @tabRecency.recencyScore(1) > @tabRecency.recencyScore 4 + assert.isTrue @tabRecency.recencyScore(2) > @tabRecency.recencyScore 4 + assert.isTrue @tabRecency.recencyScore(3) > @tabRecency.recencyScore 4 + # A convenience wrapper around completer.filter() so it can be called synchronously in tests. filterCompleter = (completer, queryTerms) -> results = [] diff --git a/tests/unit_tests/test_chrome_stubs.coffee b/tests/unit_tests/test_chrome_stubs.coffee index 2abd26c9..80750337 100644 --- a/tests/unit_tests/test_chrome_stubs.coffee +++ b/tests/unit_tests/test_chrome_stubs.coffee @@ -30,6 +30,10 @@ exports.chrome = addListener: () -> true onActiveChanged: addListener: () -> true + onActivated: + addListener: () -> true + onReplaced: + addListener: () -> true query: () -> true windows: -- cgit v1.2.3 From 1e9687d667febe575db1c66aeaaca7e8954bc31f Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sat, 8 Nov 2014 07:07:06 +0000 Subject: Tabs order; more tests. --- tests/unit_tests/completion_test.coffee | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests/unit_tests') diff --git a/tests/unit_tests/completion_test.coffee b/tests/unit_tests/completion_test.coffee index ee758dbb..dc4f3848 100644 --- a/tests/unit_tests/completion_test.coffee +++ b/tests/unit_tests/completion_test.coffee @@ -404,9 +404,20 @@ context "TabRecency", @tabRecency = new TabRecency() @tabRecency.add 3 @tabRecency.add 2 + @tabRecency.add 9 @tabRecency.add 1 + @tabRecency.remove 9 @tabRecency.add 4 + should "have entries for active tabs", -> + assert.isTrue @tabRecency.cache[1] + assert.isTrue @tabRecency.cache[2] + assert.isTrue @tabRecency.cache[3] + assert.isTrue @tabRecency.cache[4] + + should "not have entries for removed tabs", -> + assert.isFalse @tabRecency.cache[9] + should "give a high score to the most recent tab", -> assert.isTrue @tabRecency.recencyScore(4) < @tabRecency.recencyScore 1 assert.isTrue @tabRecency.recencyScore(3) < @tabRecency.recencyScore 1 @@ -417,6 +428,17 @@ context "TabRecency", assert.isTrue @tabRecency.recencyScore(2) > @tabRecency.recencyScore 4 assert.isTrue @tabRecency.recencyScore(3) > @tabRecency.recencyScore 4 + should "rank tabs by recency", -> + assert.isTrue @tabRecency.recencyScore(3) < @tabRecency.recencyScore 2 + assert.isTrue @tabRecency.recencyScore(2) < @tabRecency.recencyScore 1 + @tabRecency.add 3 + @tabRecency.add 4 # Making 3 the most recent tab which isn't the current tab. + assert.isTrue @tabRecency.recencyScore(1) < @tabRecency.recencyScore 3 + assert.isTrue @tabRecency.recencyScore(2) < @tabRecency.recencyScore 3 + assert.isTrue @tabRecency.recencyScore(4) < @tabRecency.recencyScore 3 + assert.isTrue @tabRecency.recencyScore(4) < @tabRecency.recencyScore 1 + assert.isTrue @tabRecency.recencyScore(4) < @tabRecency.recencyScore 2 + # A convenience wrapper around completer.filter() so it can be called synchronously in tests. filterCompleter = (completer, queryTerms) -> results = [] -- cgit v1.2.3