summaryrefslogtreecommitdiffstats
path: root/javatests/com/google/gerrit/acceptance/rest/change/SubmitByRebaseIfNecessaryIT.java
diff options
context:
space:
mode:
Diffstat (limited to 'javatests/com/google/gerrit/acceptance/rest/change/SubmitByRebaseIfNecessaryIT.java')
-rw-r--r--javatests/com/google/gerrit/acceptance/rest/change/SubmitByRebaseIfNecessaryIT.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/javatests/com/google/gerrit/acceptance/rest/change/SubmitByRebaseIfNecessaryIT.java b/javatests/com/google/gerrit/acceptance/rest/change/SubmitByRebaseIfNecessaryIT.java
new file mode 100644
index 0000000000..19f170643d
--- /dev/null
+++ b/javatests/com/google/gerrit/acceptance/rest/change/SubmitByRebaseIfNecessaryIT.java
@@ -0,0 +1,88 @@
+// Copyright (C) 2013 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.acceptance.rest.change;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.gerrit.acceptance.PushOneCommit;
+import com.google.gerrit.acceptance.TestProjectInput;
+import com.google.gerrit.extensions.client.InheritableBoolean;
+import com.google.gerrit.extensions.client.SubmitType;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.junit.Test;
+
+public class SubmitByRebaseIfNecessaryIT extends AbstractSubmitByRebase {
+
+ @Override
+ protected SubmitType getSubmitType() {
+ return SubmitType.REBASE_IF_NECESSARY;
+ }
+
+ @Test
+ @TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
+ public void submitWithFastForward() throws Exception {
+ RevCommit oldHead = getRemoteHead();
+ PushOneCommit.Result change = createChange();
+ submit(change.getChangeId());
+ RevCommit head = getRemoteHead();
+ assertThat(head.getId()).isEqualTo(change.getCommit());
+ assertThat(head.getParent(0)).isEqualTo(oldHead);
+ assertApproved(change.getChangeId());
+ assertCurrentRevision(change.getChangeId(), 1, head);
+ assertSubmitter(change.getChangeId(), 1);
+ assertPersonEquals(admin.getIdent(), head.getAuthorIdent());
+ assertPersonEquals(admin.getIdent(), head.getCommitterIdent());
+ assertRefUpdatedEvents(oldHead, head);
+ assertChangeMergedEvents(change.getChangeId(), head.name());
+ }
+
+ @Test
+ @TestProjectInput(useContentMerge = InheritableBoolean.TRUE)
+ public void submitWithContentMerge() throws Exception {
+ RevCommit initialHead = getRemoteHead();
+ PushOneCommit.Result change = createChange("Change 1", "a.txt", "aaa\nbbb\nccc\n");
+ submit(change.getChangeId());
+ RevCommit headAfterFirstSubmit = getRemoteHead();
+ PushOneCommit.Result change2 = createChange("Change 2", "a.txt", "aaa\nbbb\nccc\nddd\n");
+ submit(change2.getChangeId());
+
+ RevCommit headAfterSecondSubmit = getRemoteHead();
+ testRepo.reset(change.getCommit());
+ PushOneCommit.Result change3 = createChange("Change 3", "a.txt", "bbb\nccc\n");
+ submit(change3.getChangeId());
+ assertRebase(testRepo, true);
+ RevCommit headAfterThirdSubmit = getRemoteHead();
+ assertThat(headAfterThirdSubmit.getParent(0)).isEqualTo(headAfterSecondSubmit);
+ assertApproved(change3.getChangeId());
+ assertCurrentRevision(change3.getChangeId(), 2, headAfterThirdSubmit);
+ assertSubmitter(change3.getChangeId(), 1);
+ assertSubmitter(change3.getChangeId(), 2);
+
+ assertRefUpdatedEvents(
+ initialHead,
+ headAfterFirstSubmit,
+ headAfterFirstSubmit,
+ headAfterSecondSubmit,
+ headAfterSecondSubmit,
+ headAfterThirdSubmit);
+ assertChangeMergedEvents(
+ change.getChangeId(),
+ headAfterFirstSubmit.name(),
+ change2.getChangeId(),
+ headAfterSecondSubmit.name(),
+ change3.getChangeId(),
+ headAfterThirdSubmit.name());
+ }
+}