Do not encode "," when redirecting /projects/ -> /repos/
Bug: Issue 11096
Change-Id: Id3eb92254f25e8e86568be50c11e60d1a6835af9
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.js b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
index b534a76..72566cc 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
@@ -1092,11 +1092,16 @@
},
_handleProjectsOldRoute(data) {
+ let params = '';
if (data.params[1]) {
- this._redirect('/admin/repos/' + encodeURIComponent(data.params[1]));
- } else {
- this._redirect('/admin/repos');
+ params = encodeURIComponent(data.params[1]);
+ if (data.params[1].includes(',')) {
+ params =
+ encodeURIComponent(data.params[1]).replace('%2C', ',');
+ }
}
+
+ this._redirect(`/admin/repos/${params}`);
},
_handleRepoCommandsRoute(data) {
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html
index 43bd384..b4b8f59 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html
@@ -1100,6 +1100,28 @@
});
suite('repo routes', () => {
+ test('_handleProjectsOldRoute', () => {
+ const data = {params: {}};
+ element._handleProjectsOldRoute(data);
+ assert.isTrue(redirectStub.calledOnce);
+ assert.equal(redirectStub.lastCall.args[0], '/admin/repos/');
+ });
+
+ test('_handleProjectsOldRoute test', () => {
+ const data = {params: {1: 'test'}};
+ element._handleProjectsOldRoute(data);
+ assert.isTrue(redirectStub.calledOnce);
+ assert.equal(redirectStub.lastCall.args[0], '/admin/repos/test');
+ });
+
+ test('_handleProjectsOldRoute test,branches', () => {
+ const data = {params: {1: 'test,branches'}};
+ element._handleProjectsOldRoute(data);
+ assert.isTrue(redirectStub.calledOnce);
+ assert.equal(
+ redirectStub.lastCall.args[0], '/admin/repos/test,branches');
+ });
+
test('_handleRepoRoute', () => {
const data = {params: {0: 4321}};
assertDataToParams(data, '_handleRepoRoute', {