diff options
| -rw-r--r-- | lib/utils.coffee | 6 | ||||
| -rw-r--r-- | tests/unit_tests/utils_test.coffee | 7 | 
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/utils.coffee b/lib/utils.coffee index 62749496..b7f8731a 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -43,12 +43,12 @@ Utils =    # Tries to detect if :str is a valid URL.    isUrl: (str) -> -    # Starts with a scheme: URL -    return true if @hasFullUrlPrefix str -      # Must not contain spaces      return false if ' ' in str +    # Starts with a scheme: URL +    return true if @hasFullUrlPrefix str +      # More or less RFC compliant URL host part parsing. This should be sufficient for our needs      urlRegex = new RegExp(        '^(?:([^:]+)(?::([^:]+))?@)?' + # user:password (optional) => \1, \2 diff --git a/tests/unit_tests/utils_test.coffee b/tests/unit_tests/utils_test.coffee index b2d656ab..556f5b7a 100644 --- a/tests/unit_tests/utils_test.coffee +++ b/tests/unit_tests/utils_test.coffee @@ -61,6 +61,13 @@ context "hasChromePrefix",      assert.isFalse Utils.hasChromePrefix "data"      assert.isFalse Utils.hasChromePrefix "data :foobar" +context "isUrl", +  should "identify URLs as URLs", -> +    assert.isTrue Utils.isUrl "http://www.example.com/blah" + +  should "identify non-URLs and non-URLs", -> +    assert.isFalse Utils.isUrl "http://www.example.com/ blah" +  context "Function currying",    should "Curry correctly", ->      foo = (a, b) -> "#{a},#{b}"  | 
