Remove custom URL parameter parsing in favor of URLSearchParams
Release-Notes: skip
Google-Bug-Id: b/244279450
Change-Id: Idd36303d079f17a9b82aab3e3e27ccfdc480e194
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
index 96078cc..a766176 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
@@ -630,12 +630,13 @@
});
test('no user specified', () => {
- const data = {
+ const data: PageContext = {
...createPageContext(),
canonicalPath: '/dashboard/',
params: {0: ''},
+ querystring: '',
};
- return router.handleCustomDashboardRoute(data, '').then(() => {
+ return router.handleCustomDashboardRoute(data).then(() => {
assert.isFalse(setStateStub.called);
assert.isTrue(redirectStub.called);
assert.equal(redirectStub.lastCall.args[0], '/dashboard/self');
@@ -643,68 +644,65 @@
});
test('custom dashboard without title', () => {
- const data = {
+ const data: PageContext = {
...createPageContext(),
canonicalPath: '/dashboard/',
params: {0: ''},
+ querystring: '?a=b&c&d=e',
};
- return router
- .handleCustomDashboardRoute(data, '?a=b&c&d=e')
- .then(() => {
- assert.isFalse(redirectStub.called);
- assert.isTrue(setStateStub.calledOnce);
- assert.deepEqual(setStateStub.lastCall.args[0], {
- view: GerritView.DASHBOARD,
- user: 'self',
- sections: [
- {name: 'a', query: 'b'},
- {name: 'd', query: 'e'},
- ],
- title: 'Custom Dashboard',
- });
+ return router.handleCustomDashboardRoute(data).then(() => {
+ assert.isFalse(redirectStub.called);
+ assert.isTrue(setStateStub.calledOnce);
+ assert.deepEqual(setStateStub.lastCall.args[0], {
+ view: GerritView.DASHBOARD,
+ user: 'self',
+ sections: [
+ {name: 'a', query: 'b'},
+ {name: 'd', query: 'e'},
+ ],
+ title: 'Custom Dashboard',
});
+ });
});
test('custom dashboard with title', () => {
- const data = {
+ const data: PageContext = {
...createPageContext(),
canonicalPath: '/dashboard/',
params: {0: ''},
+ querystring: '?a=b&c&d=&=e&title=t',
};
- return router
- .handleCustomDashboardRoute(data, '?a=b&c&d=&=e&title=t')
- .then(() => {
- assert.isFalse(redirectToLoginStub.called);
- assert.isFalse(redirectStub.called);
- assert.isTrue(setStateStub.calledOnce);
- assert.deepEqual(setStateStub.lastCall.args[0], {
- view: GerritView.DASHBOARD,
- user: 'self',
- sections: [{name: 'a', query: 'b'}],
- title: 't',
- });
+ return router.handleCustomDashboardRoute(data).then(() => {
+ assert.isFalse(redirectToLoginStub.called);
+ assert.isFalse(redirectStub.called);
+ assert.isTrue(setStateStub.calledOnce);
+ assert.deepEqual(setStateStub.lastCall.args[0], {
+ view: GerritView.DASHBOARD,
+ user: 'self',
+ sections: [{name: 'a', query: 'b'}],
+ title: 't',
});
+ });
});
test('custom dashboard with foreach', () => {
- const data = {
+ const data: PageContext = {
...createPageContext(),
canonicalPath: '/dashboard/',
params: {0: ''},
+ querystring: '?a=b&c&d=&=e&foreach=is:open',
};
- return router
- .handleCustomDashboardRoute(data, '?a=b&c&d=&=e&foreach=is:open')
- .then(() => {
- assert.isFalse(redirectToLoginStub.called);
- assert.isFalse(redirectStub.called);
- assert.isTrue(setStateStub.calledOnce);
- assert.deepEqual(setStateStub.lastCall.args[0], {
- view: GerritView.DASHBOARD,
- user: 'self',
- sections: [{name: 'a', query: 'is:open b'}],
- title: 'Custom Dashboard',
- });
+ return router.handleCustomDashboardRoute(data).then(() => {
+ assert.isFalse(redirectToLoginStub.called);
+ assert.isFalse(redirectStub.called);
+ assert.isTrue(setStateStub.calledOnce);
+ assert.deepEqual(setStateStub.lastCall.args[0], {
+ view: GerritView.DASHBOARD,
+ user: 'self',
+ sections: [{name: 'a', query: 'is:open b'}],
+ title: 'Custom Dashboard',
});
+ });
});
});
@@ -1336,35 +1334,4 @@
assert.isFalse(redirectStub.called);
});
});
-
- suite('parseQueryString', () => {
- test('empty queries', () => {
- assert.deepEqual(router.parseQueryString(''), []);
- assert.deepEqual(router.parseQueryString('?'), []);
- assert.deepEqual(router.parseQueryString('??'), []);
- assert.deepEqual(router.parseQueryString('&&&'), []);
- });
-
- test('url decoding', () => {
- assert.deepEqual(router.parseQueryString('+'), [[' ', '']]);
- assert.deepEqual(router.parseQueryString('???+%3d+'), [[' = ', '']]);
- assert.deepEqual(
- router.parseQueryString('%6e%61%6d%65=%76%61%6c%75%65'),
- [['name', 'value']]
- );
- });
-
- test('multiple parameters', () => {
- assert.deepEqual(router.parseQueryString('a=b&c=d&e=f'), [
- ['a', 'b'],
- ['c', 'd'],
- ['e', 'f'],
- ]);
- assert.deepEqual(router.parseQueryString('&a=b&&&e=f&c'), [
- ['a', 'b'],
- ['e', 'f'],
- ['c', ''],
- ]);
- });
- });
});