From 4b9b9e98300b9554faf0c960674eb75750227404 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Thu, 13 May 2010 12:03:10 -0700 Subject: fix incorect parsing of url if it contains dash - character --- example/temp.html | 5 ++++- src/services.js | 2 +- test/servicesSpec.js | 10 ++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/example/temp.html b/example/temp.html index d6414417..31ef7aa6 100644 --- a/example/temp.html +++ b/example/temp.html @@ -4,6 +4,9 @@ - {{'first'}}
{{'second'}}
+ {{$location.hashSearch.order}}
+ Report
+ Problem
+ {{$location.hashSearch.order}}
diff --git a/src/services.js b/src/services.js index bdfbfdb4..55e3b2f6 100644 --- a/src/services.js +++ b/src/services.js @@ -3,7 +3,7 @@ angularService("$document", function(window){ return jqLite(window.document); }, {inject:['$window']}); -var URL_MATCH = /^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.]*)(:([0-9]+))?([^\?#]+)(\?([^#]*))?(#(.*))?$/; +var URL_MATCH = /^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?([^\?#]+)(\?([^#]*))?(#(.*))?$/; var HASH_MATCH = /^([^\?]*)?(\?([^\?]*))?$/; var DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp':21}; angularService("$location", function(browser){ diff --git a/test/servicesSpec.js b/test/servicesSpec.js index de2d2b2b..17f71bdc 100644 --- a/test/servicesSpec.js +++ b/test/servicesSpec.js @@ -88,6 +88,14 @@ describe("service", function(){ expect(log).toEqual('/abc;'); }); + it("should parse url which contains - in host", function(){ + scope.$location.parse('http://a-b1.c-d.09/path'); + expect(scope.$location.href).toEqual('http://a-b1.c-d.09/path'); + expect(scope.$location.protocol).toEqual('http'); + expect(scope.$location.host).toEqual('a-b1.c-d.09'); + expect(scope.$location.path).toEqual('/path'); + }); + }); describe("$invalidWidgets", function(){ @@ -255,5 +263,3 @@ describe("service", function(){ }); - - -- cgit v1.2.3