Merge branch 'stable-2.14' * stable-2.14: Document metrics for reviewer suggestion DeleteBranchIT: Add tests for deleting branch by REST with full name Changes can't be found when project name matches Change-Id pattern Change-Id: If24b843ab9ec8a0d4df439f88c7270548d06ce95
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/DeleteBranchIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/DeleteBranchIT.java index 2c6b32f..1ece7fb 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/DeleteBranchIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/DeleteBranchIT.java
@@ -26,6 +26,7 @@ import com.google.gerrit.extensions.api.projects.BranchInput; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; +import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.reviewdb.client.Branch; import org.junit.Before; import org.junit.Test; @@ -92,8 +93,22 @@ grantDelete(); String ref = branch.getShortName(); assertThat(ref).doesNotMatch(R_HEADS); - RestResponse r = userRestSession.delete("/projects/" + project.get() + "/branches/" + ref); - r.assertNoContent(); + assertDeleteByRestSucceeds(ref); + } + + @Test + public void deleteBranchByRestWithEncodedFullName() throws Exception { + grantDelete(); + assertDeleteByRestSucceeds(Url.encode(branch.get())); + } + + @Test + public void deleteBranchByRestFailsWithUnencodedFullName() throws Exception { + grantDelete(); + RestResponse r = + userRestSession.delete("/projects/" + project.get() + "/branches/" + branch.get()); + r.assertNotFound(); + branch().get(); } private void blockForcePush() throws Exception { @@ -116,6 +131,13 @@ return gApi.projects().name(branch.getParentKey().get()).branch(branch.get()); } + private void assertDeleteByRestSucceeds(String ref) throws Exception { + RestResponse r = userRestSession.delete("/projects/" + project.get() + "/branches/" + ref); + r.assertNoContent(); + exception.expect(ResourceNotFoundException.class); + branch().get(); + } + private void assertDeleteSucceeds() throws Exception { String branchRev = branch().get().revision; branch().delete();