Merge "Load latest patchset after rebase"
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index bc3b91e..645290a 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -726,6 +726,9 @@
         // If the change was rebased, we need to reload the related changes.
         if (e.detail.action === 'rebase') {
           this.$.relatedChanges.reload();
+          this.set('_patchRange.patchNum',
+              this._computeLatestPatchNum(this._allPatchSets));
+          this._updateSelected();
         }
       }.bind(this));
     },
@@ -942,6 +945,6 @@
       return !(loggedIn && (account._account_id === change.owner._account_id));
     },
 
-    _computeReplyDisabled: function() { return false; }
+    _computeReplyDisabled: function() { return false; },
   });
 })();
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
index 0f13b29..45fae71 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
@@ -538,13 +538,19 @@
       assert(showStub.lastCall.calledWithExactly('/c/42/3'));
     });
 
-    test('related changes are updated after rebase', function(done) {
+    test('related changes are updated and new patch selected after rebase',
+        function(done) {
+      sandbox.stub(element, '_computeLatestPatchNum', function() {
+        return 1;
+      });
       sandbox.stub(element, '_reload',
           function() { return Promise.resolve(); });
+      sandbox.stub(element, '_updateSelected');
       sandbox.stub(element.$.relatedChanges, 'reload');
       var e = {detail: {action: 'rebase'}};
       element._handleReloadChange(e).then(function() {
         assert.isTrue(element.$.relatedChanges.reload.called);
+        assert.isTrue(element._updateSelected.called);
         done();
       });
     });
@@ -552,10 +558,12 @@
     test('related changes are not updated after other action', function(done) {
       sandbox.stub(element, '_reload',
           function() { return Promise.resolve(); });
+      sandbox.stub(element, '_updateSelected');
       sandbox.stub(element.$.relatedChanges, 'reload');
       var e = {detail: {action: 'abandon'}};
       element._handleReloadChange(e).then(function() {
         assert.isFalse(element.$.relatedChanges.reload.called);
+        assert.isFalse(element._updateSelected.called);
         done();
       });
     });