From 9945d5027305970a41a22bcd1b8eee7cf68ff8f6 Mon Sep 17 00:00:00 2001 From: Manuel Braun Date: Thu, 7 Mar 2013 13:36:38 +0100 Subject: [PATCH] fix($location): parse FirefoxOS packaged app urls FirefoxOS uses special URLs like app://{d0419af1-8b42-41c5-96f4-ef4179e52315}/index.html for packaged Apps. Closes #2112 --- src/ng/location.js | 2 +- test/ng/locationSpec.js | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ng/location.js b/src/ng/location.js index 73ef7f7b1db7..a2e0c7ca5a7f 100644 --- a/src/ng/location.js +++ b/src/ng/location.js @@ -1,6 +1,6 @@ 'use strict'; -var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/, +var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?([\{\}\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/, PATH_MATCH = /^([^\?#]*)?(\?([^#]*))?(#(.*))?$/, HASH_MATCH = PATH_MATCH, DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21}; diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index cb3372a3c739..bfbbe8dc401c 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -666,6 +666,16 @@ describe('$location', function() { expect(match[8]).toBe('foo'); expect(match[10]).toBe('bar'); }); + + it('should parse FFOS app:// urls', function() { + var match = URL_MATCH.exec('app://{d0419af1-8b42-41c5-96f4-ef4179e52315}/path'); + + expect(match[1]).toBe('app'); + expect(match[3]).toBe('{d0419af1-8b42-41c5-96f4-ef4179e52315}'); + expect(match[5]).toBeFalsy(); + expect(match[6]).toBe('/path'); + expect(match[8]).toBeFalsy(); + }); });