From c9cec6000737d89ffacfe3c6678cd65d34d2d8fc Mon Sep 17 00:00:00 2001 From: Rado Kirov Date: Tue, 5 May 2015 15:19:06 -0700 Subject: [PATCH] fix(router): fix for leading slash in dart Using string1 === string2 translates to identical(string1, string2) in dart, which is incorrect as it is possilbe for dart strings to have different reference. --- modules/angular2/src/router/route_recognizer.js | 2 +- modules/angular2/test/router/route_recognizer_spec.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/angular2/src/router/route_recognizer.js b/modules/angular2/src/router/route_recognizer.js index 12171b5b9a..cf361237de 100644 --- a/modules/angular2/src/router/route_recognizer.js +++ b/modules/angular2/src/router/route_recognizer.js @@ -43,7 +43,7 @@ export class RouteRecognizer { StringMapWrapper.set(solution, 'params', pathRecognizer.parseParams(url)); //TODO(btford): determine a good generic way to deal with terminal matches - if (url === '/') { + if (url == '/') { StringMapWrapper.set(solution, 'matchedUrl', '/'); StringMapWrapper.set(solution, 'unmatchedUrl', ''); } else { diff --git a/modules/angular2/test/router/route_recognizer_spec.js b/modules/angular2/test/router/route_recognizer_spec.js index 43c4a23ee4..6cb84bc605 100644 --- a/modules/angular2/test/router/route_recognizer_spec.js +++ b/modules/angular2/test/router/route_recognizer_spec.js @@ -30,6 +30,17 @@ export function main() { }); }); + it('should work with leading slash', () => { + recognizer.addConfig('/', handler); + + expect(recognizer.recognize('/')[0]).toEqual({ + 'handler': { 'components': { 'a': 'b' } }, + 'params': {}, + 'matchedUrl': '/', + 'unmatchedUrl': '' + }); + }); + it('should work with a dynamic segment', () => { recognizer.addConfig('/user/:name', handler); expect(recognizer.recognize('/user/brian')[0]).toEqual({