Merge branch 'stable-2.16' into stable-3.0

* stable-2.16:
  Fix selecting AutoMerge

Change-Id: Ia1ca45e3dffdb380e65640d0374251a61cc36c60
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 48234be..4fd19fb 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
@@ -866,9 +866,8 @@
     },
 
     /**
-     * Gets base patch number, if is a parent try and
-     * decide from preference weather to default to `auto merge`
-     * or `Parent 1`.
+     * Gets base patch number, if it is a parent try and decide from
+     * preference weather to default to `auto merge`, `Parent 1` or `PARENT`.
      * @param {Object} change
      * @param {Object} patchRange
      * @return {number|string}
@@ -891,7 +890,11 @@
       const preferFirst = this._prefs &&
           this._prefs.default_base_for_merges === 'FIRST_PARENT';
 
-      return parentCount > 1 && preferFirst ? -1 : 'PARENT';
+      if (parentCount > 1 && preferFirst && !patchRange.patchNum) {
+        return -1;
+      }
+
+      return 'PARENT';
     },
 
     _computeShowPrimaryTabs(dynamicTabContentEndpoints) {
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 6c24a38..a5adba7 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
@@ -1044,6 +1044,53 @@
       });
     });
 
+    test('_getBasePatchNum', () => {
+      const _change = {
+        _number: 42,
+        revisions: {
+          '98da160735fb81604b4c40e93c368f380539dd0e': {
+            _number: 1,
+            commit: {
+              parents: [],
+            },
+          },
+        },
+      };
+      const _patchRange = {
+        basePatchNum: 'PARENT',
+      };
+      assert.equal(element._getBasePatchNum(_change, _patchRange), 'PARENT');
+
+      element._prefs = {
+        default_base_for_merges: 'FIRST_PARENT',
+      };
+
+      const _change2 = {
+        _number: 42,
+        revisions: {
+          '98da160735fb81604b4c40e93c368f380539dd0e': {
+            _number: 1,
+            commit: {
+              parents: [
+                {
+                  commit: '6e12bdf1176eb4ab24d8491ba3b6d0704409cde8',
+                  subject: 'test',
+                },
+                {
+                  commit: '22f7db4754b5d9816fc581f3d9a6c0ef8429c841',
+                  subject: 'test3',
+                },
+              ],
+            },
+          },
+        },
+      };
+      assert.equal(element._getBasePatchNum(_change2, _patchRange), -1);
+
+      _patchRange.patchNum = 1;
+      assert.equal(element._getBasePatchNum(_change2, _patchRange), 'PARENT');
+    });
+
     test('_openReplyDialog called with `ANY` when coming from tap event',
         () => {
           const openStub = sandbox.stub(element, '_openReplyDialog');