aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2014-11-02 06:00:20 +0000
committerStephen Blott2014-11-02 06:00:20 +0000
commita61d69ea40c9f2683107416eccab8046ab00c87d (patch)
tree6800ae1e3d45bacd6a71f2ab8a9622e94a78ac4c
parent943eaae9868ad0298669564b7b50af477646746a (diff)
downloadvimium-a61d69ea40c9f2683107416eccab8046ab00c87d.tar.bz2
Refactor Utils.hasChromePrefix and add tests.
-rw-r--r--lib/utils.coffee10
-rw-r--r--tests/unit_tests/utils_test.coffee14
2 files changed, 20 insertions, 4 deletions
diff --git a/lib/utils.coffee b/lib/utils.coffee
index 222b784b..bbcee1a0 100644
--- a/lib/utils.coffee
+++ b/lib/utils.coffee
@@ -25,11 +25,13 @@ Utils =
id = 0
-> id += 1
- hasChromePrefix: (url) ->
+ hasChromePrefix: do ->
chromePrefixes = [ "about:", "view-source:", "chrome-extension:", "data:" ]
- for prefix in chromePrefixes
- return true if url.startsWith prefix
- false
+ (url) ->
+ if 0 < url.indexOf ":"
+ for prefix in chromePrefixes
+ return true if url.startsWith prefix
+ false
# Completes a partial URL (without scheme)
createFullUrl: (partialUrl) ->
diff --git a/tests/unit_tests/utils_test.coffee b/tests/unit_tests/utils_test.coffee
index 76a023ed..b2d656ab 100644
--- a/tests/unit_tests/utils_test.coffee
+++ b/tests/unit_tests/utils_test.coffee
@@ -47,6 +47,20 @@ context "convertToUrl",
assert.equal "http://www.google.com/search?q=google", Utils.convertToUrl("google")
assert.equal "http://www.google.com/search?q=go%20ogle.com", Utils.convertToUrl("go ogle.com")
+context "hasChromePrefix",
+ should "detect chrome prefixes of URLs", ->
+ assert.isTrue Utils.hasChromePrefix "about:foobar"
+ assert.isTrue Utils.hasChromePrefix "view-source:foobar"
+ assert.isTrue Utils.hasChromePrefix "chrome-extension:foobar"
+ assert.isTrue Utils.hasChromePrefix "data:foobar"
+ assert.isTrue Utils.hasChromePrefix "data:"
+ assert.isFalse Utils.hasChromePrefix ""
+ assert.isFalse Utils.hasChromePrefix "about"
+ assert.isFalse Utils.hasChromePrefix "view-source"
+ assert.isFalse Utils.hasChromePrefix "chrome-extension"
+ assert.isFalse Utils.hasChromePrefix "data"
+ assert.isFalse Utils.hasChromePrefix "data :foobar"
+
context "Function currying",
should "Curry correctly", ->
foo = (a, b) -> "#{a},#{b}"