aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/com/googlesource/gerrit/plugins/qtcodereview
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/googlesource/gerrit/plugins/qtcodereview')
-rw-r--r--src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtCommonFlowsIT.java37
-rw-r--r--src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtUnStageIT.java23
2 files changed, 60 insertions, 0 deletions
diff --git a/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtCommonFlowsIT.java b/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtCommonFlowsIT.java
index 8068163..2469d62 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtCommonFlowsIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtCommonFlowsIT.java
@@ -347,4 +347,41 @@ public class QtCommonFlowsIT extends QtCodeReviewIT {
assertThat(updatedHead).isEqualTo(initialHead);
}
+ @Test
+ public void unStage_MergeConflict_While_Building() throws Exception {
+ RevCommit initialHead = getRemoteHead();
+ PushOneCommit.Result c1 = pushCommit("master", "commitmsg1", "file1", "content1");
+ testRepo.reset(initialHead);
+ PushOneCommit.Result c2 = pushCommit("master", "commitmsg2", "file2", "content2");
+ testRepo.reset(initialHead);
+ PushOneCommit.Result c3 = pushCommit("master", "commitmsg3", "thesamefile", "content3");
+ // c4 depends on c3
+ PushOneCommit.Result c4 = pushCommit("master", "commitmsg4", "thesamefile", "conflict content3");
+ approve(c1.getChangeId());
+ approve(c2.getChangeId());
+ approve(c3.getChangeId());
+ approve(c4.getChangeId());
+
+ QtStage(c1);
+ QtNewBuild("master", "master-build-500");
+ RevCommit stagingExpected = getRemoteHead(project, R_STAGING + "master");
+
+ QtStage(c2);
+ QtStage(c3);
+ QtStage(c4);
+
+ QtUnStage(c3);
+ Change change = c1.getChange().change();
+ assertThat(change.getStatus()).isEqualTo(Change.Status.INTEGRATING);
+ change = c2.getChange().change();
+ assertThat(change.getStatus()).isEqualTo(Change.Status.NEW);
+ change = c3.getChange().change();
+ assertThat(change.getStatus()).isEqualTo(Change.Status.NEW);
+ change = c4.getChange().change();
+ assertThat(change.getStatus()).isEqualTo(Change.Status.NEW);
+
+ RevCommit stagingHeadMaster = getRemoteHead(project, R_STAGING + "master");
+ assertThat(stagingHeadMaster.getId()).isEqualTo(stagingExpected.getId());
+ }
+
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtUnStageIT.java b/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtUnStageIT.java
index 633515b..06b249e 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtUnStageIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtUnStageIT.java
@@ -212,6 +212,29 @@ public class QtUnStageIT extends QtCodeReviewIT {
}
@Test
+ public void multiChange_UnStage_MergeConflict() throws Exception {
+ RevCommit initialHead = getRemoteHead();
+ PushOneCommit.Result c1 = pushCommit("master", "commitmsg1", "thesamefile", "content1");
+ // c2 depends on c1
+ PushOneCommit.Result c2 = pushCommit("master", "commitdependingon1", "thesamefile", "conflict");
+ testRepo.reset(initialHead);
+ PushOneCommit.Result c3 = pushCommit("master", "commitmsg3", "file3", "content3");
+
+ approve(c1.getChangeId());
+ QtStage(c1);
+ approve(c2.getChangeId());
+ QtStage(c2);
+ approve(c3.getChangeId());
+ QtStage(c3);
+
+ RevCommit stagingHead = qtUnStageExpectCommit(c1, initialHead);
+ Change change = c2.getChange().change();
+ assertThat(change.getStatus()).isEqualTo(Change.Status.NEW);
+ change = c3.getChange().change();
+ assertThat(change.getStatus()).isEqualTo(Change.Status.NEW);
+ }
+
+ @Test
public void errorUnStage_No_Permission() throws Exception {
PushOneCommit.Result c = pushCommit("master", "commitmsg1", "file1", "content1");
approve(c.getChangeId());