diff options
Diffstat (limited to 'src/test/java/com/googlesource/gerrit')
-rw-r--r-- | src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtCommonFlowsIT.java | 37 | ||||
-rw-r--r-- | src/test/java/com/googlesource/gerrit/plugins/qtcodereview/QtUnStageIT.java | 23 |
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()); |