From bb9dfbc578cdfa5c7e1ffc4600602b26ee418bbb Mon Sep 17 00:00:00 2001 From: vsavkin Date: Thu, 25 Aug 2016 06:08:07 -0700 Subject: [PATCH] fix(router): use encodeUri/decodeUri to encode fragment --- modules/@angular/router/src/url_tree.ts | 7 +++---- modules/@angular/router/test/url_serializer.spec.ts | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/@angular/router/src/url_tree.ts b/modules/@angular/router/src/url_tree.ts index f6e44a301a..5b7358d31f 100644 --- a/modules/@angular/router/src/url_tree.ts +++ b/modules/@angular/router/src/url_tree.ts @@ -182,9 +182,8 @@ export class DefaultUrlSerializer implements UrlSerializer { serialize(tree: UrlTree): string { const segment = `/${serializeSegment(tree.root, true)}`; const query = serializeQueryParams(tree.queryParams); - const fragment = tree.fragment !== null && tree.fragment !== undefined ? - `#${encodeURIComponent(tree.fragment)}` : - ''; + const fragment = + tree.fragment !== null && tree.fragment !== undefined ? `#${encodeURI(tree.fragment)}` : ''; return `${segment}${query}${fragment}`; } } @@ -371,7 +370,7 @@ class UrlParser { parseFragment(): string { if (this.peekStartsWith('#')) { - return decode(this.remaining.substring(1)); + return decodeURI(this.remaining.substring(1)); } else { return null; } diff --git a/modules/@angular/router/test/url_serializer.spec.ts b/modules/@angular/router/test/url_serializer.spec.ts index 2ac5411554..61312571b4 100644 --- a/modules/@angular/router/test/url_serializer.spec.ts +++ b/modules/@angular/router/test/url_serializer.spec.ts @@ -207,10 +207,10 @@ describe('url serializer', () => { }); it('should encode/decode fragment', () => { - const u = `/one#${encode("one two")}`; + const u = `/one#${encodeURI("one two=three four")}`; const tree = url.parse(u); - expect(tree.fragment).toEqual('one two'); + expect(tree.fragment).toEqual('one two=three four'); expect(url.serialize(tree)).toEqual(u); }); });