Prevents merge of non mergeable crossrepos when processing RefUpdatedEvent

This was introduced by
  2425dfcfb Expand AutomaticSubmit to whole branch/project.
which allowed to submit changes that become "submittable" after a merge.

This fix applies the same policy to define "submittable" as for the
other commits.

Change-Id: I317c33ced201fe3359c1ebf69cd0233c1b567ef8
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
index 71097aa..ce7384f 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
@@ -159,8 +159,8 @@
                           + " during update of ref "
                           + refName
                           + ": Submitting ...");
-                  atomicityHelper.mergeReview(submittable.project, submittable._number);
-                } catch (RestApiException | OrmException | IOException e) {
+                  autoSubmitIfMergeable(Change.from(submittable));
+                } catch (UpdateException | RestApiException | OrmException | IOException e) {
                   log.error(
                       "Cannot autosubmit change "
                           + submittable._number
diff --git a/test.rb b/test.rb
index 636acbb..a03331a 100755
--- a/test.rb
+++ b/test.rb
@@ -73,6 +73,35 @@
     check_status(commit2, 'MERGED')
   end
 
+  def test_refupdatedevent_merge_upper_commit
+    commit1a = create_review(PROJECT1, "review1a on #{PROJECT1}")
+    commit1b = create_review(PROJECT1, "review1b on #{PROJECT1}")
+    approve_review(commit1b)
+    check_status(commit1a, 'NEW')
+    check_status(commit1b, 'NEW')
+
+    approve_review(commit1a)
+
+    check_status(commit1a, 'MERGED')
+    check_status(commit1b, 'MERGED')
+  end
+
+  def test_refupdatedevent_does_not_merge_non_mergeable_upper_crossrepo
+    commit1a = create_review(PROJECT1, "review1a on #{PROJECT1}")
+    commit1b = create_review(PROJECT1, "review1b on #{PROJECT1}", "crossrepo/topic2")
+    commit2 = create_review(PROJECT2, "review2 on #{PROJECT2}", "crossrepo/topic2")
+    approve_review(commit1b)
+    check_status(commit1a, 'NEW')
+    check_status(commit1b, 'NEW')
+    check_status(commit2, 'NEW')
+
+    approve_review(commit1a)
+
+    check_status(commit1a, 'MERGED')
+    check_status(commit1b, 'NEW')
+    check_status(commit2, 'NEW')
+  end
+
   def test_two_reviews_with_same_changed_id
     commit1 = create_review(PROJECT1, "review1 on #{PROJECT1}")
     change_id = read_change_id(PROJECT1)