aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/completion_test.coffee53
-rw-r--r--tests/test_helper.coffee5
2 files changed, 58 insertions, 0 deletions
diff --git a/tests/completion_test.coffee b/tests/completion_test.coffee
new file mode 100644
index 00000000..eb833ecf
--- /dev/null
+++ b/tests/completion_test.coffee
@@ -0,0 +1,53 @@
+require "./test_helper.js"
+extend(global, require "../lib/utils.js")
+extend(global, require "../background_scripts/completion.js")
+
+global.chrome = {}
+
+context "bookmark completer",
+ setup ->
+ @bookmark2 = { title: "bookmark2", url: "bookmark2.com" }
+ @bookmark1 = { title: "bookmark1", url: "bookmark1.com", children: [@bookmark2] }
+ global.chrome.bookmarks =
+ getTree: (callback) => callback([@bookmark1])
+
+ @completer = new BookmarkCompleter()
+
+ should "flatten a list of bookmarks", ->
+ result = @completer.traverseBookmarks([@bookmark1])
+ assert.arrayEqual [@bookmark1, @bookmark2], @completer.traverseBookmarks([@bookmark1])
+
+ should "return matching bookmarks when searching", ->
+ @completer.refresh()
+ @completer.filter(["mark2"], (@results) =>)
+ assert.arrayEqual [@bookmark2.url], @results.map (suggestion) -> suggestion.url
+
+context "history completer",
+ setup ->
+ @history1 = { title: "history1", url: "history1.com" }
+ @history2 = { title: "history2", url: "history2.com" }
+
+ global.chrome.history =
+ search: (options, callback) => callback([@history1, @history2])
+ onVisited: { addListener: -> }
+
+ @completer = new HistoryCompleter()
+
+ should "return matching history entries when searching", ->
+ @completer.filter(["story1"], (@results) =>)
+ assert.arrayEqual [@history1.url], @results.map (entry) -> entry.url
+
+context "suggestions",
+ should "escape html in page titles", ->
+ suggestion = new Suggestion(["queryterm"], "tab", "url", "title <span>", "action")
+ assert.isTrue suggestion.generateHtml().indexOf("title &lt;span&gt;") >= 0
+
+ should "highlight query words", ->
+ suggestion = new Suggestion(["ninja"], "tab", "url", "ninjawords", "action")
+ assert.isTrue suggestion.generateHtml().indexOf("<span class='match'>ninja</span>words") >= 0
+
+ should "shorten urls", ->
+ suggestion = new Suggestion(["queryterm"], "tab", "http://ninjawords.com", "ninjawords", "action")
+ assert.equal -1, suggestion.generateHtml().indexOf("http://ninjawords.com")
+
+Tests.run() \ No newline at end of file
diff --git a/tests/test_helper.coffee b/tests/test_helper.coffee
new file mode 100644
index 00000000..237f8e24
--- /dev/null
+++ b/tests/test_helper.coffee
@@ -0,0 +1,5 @@
+require("./shoulda.js/shoulda.js")
+global.extend = (hash1, hash2) ->
+ for key of hash2
+ hash1[key] = hash2[key]
+ hash1 \ No newline at end of file