Merge "Fix wrong edit url being used within gr-file-list-header" into stable-3.2
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js
index 73c6721..9c8551c 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js
@@ -242,6 +242,10 @@
     const {basePatchNum, patchNum} = e.detail;
     if (this.patchNumEquals(basePatchNum, this.basePatchNum) &&
         this.patchNumEquals(patchNum, this.patchNum)) { return; }
+    if (patchNum === 'edit' && basePatchNum === 'PARENT') {
+      GerritNav.navigateToChange(this.change, undefined, undefined, true);
+      return;
+    }
     GerritNav.navigateToChange(this.change, patchNum, basePatchNum);
   }
 
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html
index 19362d5..91705e7 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html
@@ -261,6 +261,34 @@
         .calledWithExactly(element.change, 3, 1));
   });
 
+  test('navigateToChange called when range select changes with edit', () => {
+    const navigateToChangeStub = sinon.stub(GerritNav, 'navigateToChange');
+    element.change = {
+      change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+      revisions: {
+        rev2: {_number: 2},
+        rev1: {_number: 1},
+        rev13: {_number: 13},
+        rev3: {_number: 3},
+      },
+      status: 'NEW',
+      labels: {},
+    };
+    element.basePatchNum = 1;
+    element.patchNum = 'edit';
+
+    const detail = {
+      detail: {
+        basePatchNum: 'PARENT',
+        patchNum: 'edit',
+      },
+    };
+    element._handlePatchChange(detail);
+    assert.equal(navigateToChangeStub.callCount, 1);
+    assert.isTrue(navigateToChangeStub.lastCall
+        .calledWithExactly(element.change, undefined, undefined, true));
+  });
+
   test('class is applied to file list on old patch set', () => {
     const allPatchSets = [{num: 4}, {num: 2}, {num: 1}];
     assert.equal(element._computePatchInfoClass('1', allPatchSets),