summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaladox none <thomasmulhall410@yahoo.com>2021-07-07 21:20:40 +0000
committerPaladox none <thomasmulhall410@yahoo.com>2021-07-08 19:18:39 +0000
commitfd06827951d5e69c1db653e8419cfd30a87a0d26 (patch)
treec6e197a22efb1be945f846af6e37caf0709aac84
parent796f819cd1c9c0ac8689e130349d3ae1b6e65fb2 (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.js9
-rw-r--r--polygerrit-ui/app/elements/core/gr-router/gr-router_test.html23
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', () => {