diff options
author | Paladox none <thomasmulhall410@yahoo.com> | 2021-07-07 21:20:40 +0000 |
---|---|---|
committer | Paladox none <thomasmulhall410@yahoo.com> | 2021-07-08 19:18:39 +0000 |
commit | fd06827951d5e69c1db653e8419cfd30a87a0d26 (patch) | |
tree | c6e197a22efb1be945f846af6e37caf0709aac84 | |
parent | 796f819cd1c9c0ac8689e130349d3ae1b6e65fb2 (diff) |
Redirect /edit to ,edit
We don't want to support /edit unless its diffing the bases,
in which case we only redirect if the url exactly contains /edit.
Change-Id: I08599c559bc7c8a07a284f137433bd1bd5483615
(cherry picked from commit 7a97194a5c7d1bf93f1d49d6a697804985e5d756)
-rw-r--r-- | polygerrit-ui/app/elements/core/gr-router/gr-router.js | 9 | ||||
-rw-r--r-- | polygerrit-ui/app/elements/core/gr-router/gr-router_test.html | 23 |
2 files changed, 29 insertions, 3 deletions
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 e861f2ef0c..ae8162f7c0 100644 --- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js +++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js @@ -1367,6 +1367,15 @@ class GrRouter extends mixinBehaviors( [ queryMap: ctx.queryMap, }; + // We do not want to allow "edit" to be used as a + // patch number. Instead redirect to ,edit. + if (ctx.params[4] === 'edit' && !ctx.params[6]) { + params.basePatchNum = undefined; + params.edit = true; + this._redirect(this._generateUrl(params)); + return; + } + this.$.reporting.setRepoName(params.project); this._redirectOrNavigate(params); } 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 2b2db0b3a1..0e82a543a8 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 @@ -1428,16 +1428,16 @@ suite('gr-router tests', () => { suite('_handleChangeRoute', () => { let normalizeRangeStub; - function makeParams(path, hash) { + function makeParams(path, hash, baseNum, patchNum) { return { params: [ 'foo/bar', // 0 Project 1234, // 1 Change number null, // 2 Unused null, // 3 Unused - 4, // 4 Base patch number + baseNum ? baseNum : 4, // 4 Base patch number null, // 5 Unused - 7, // 6 Patch number + patchNum ? patchNum : 7, // 6 Patch number ], queryMap: new Map(), }; @@ -1475,6 +1475,23 @@ suite('gr-router tests', () => { assert.isFalse(redirectStub.called); assert.isTrue(normalizeRangeStub.called); }); + + test('redirect due to patchNum being an edit', () => { + normalizeRangeStub.returns(true); + const ctx = makeParams(null, ''); + element._handleChangeRoute(ctx, undefined, 'edit', false); + assert.isTrue(normalizeRangeStub.called); + assert.isFalse(setParamsStub.called); + assert.isTrue(redirectStub.calledOnce); + + const params = { + view: GerritNav.View.CHANGE, + changeNum: '1234', + project: 'test', + edit: true, + }; + assert.equal(element._generateUrl(params), '/c/test/+/1234,edit'); + }); }); suite('_handleDiffRoute', () => { |