Disallow publish change edit when user has not signed CLA

Bug: issue 3504
Change-Id: I4b3b5607e8742c90ceb68e87c571df076cd82dad
This commit is contained in:
David Ostrovsky
2015-07-31 00:30:44 +02:00
committed by David Ostrovsky
parent 0573f65bff
commit d1a1699dd1
3 changed files with 35 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import static com.google.gerrit.acceptance.GitUtil.createProject;
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.apache.http.HttpStatus.SC_FORBIDDEN;
import static org.apache.http.HttpStatus.SC_CONFLICT;
import static org.apache.http.HttpStatus.SC_NOT_FOUND;
import static org.apache.http.HttpStatus.SC_NO_CONTENT;
@@ -35,6 +36,7 @@ import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.RestResponse;
import com.google.gerrit.acceptance.RestSession;
import com.google.gerrit.extensions.api.changes.ReviewInput;
import com.google.gerrit.extensions.client.InheritableBoolean;
import com.google.gerrit.extensions.client.ListChangesOption;
import com.google.gerrit.extensions.common.ApprovalInfo;
import com.google.gerrit.extensions.common.ChangeInfo;
@@ -187,6 +189,22 @@ public class ChangeEditIT extends AbstractDaemonTest {
assertThat(edit.isPresent()).isFalse();
}
@Test
public void publishEditRestWithoutCLA() throws Exception {
setUseContributorAgreements(InheritableBoolean.TRUE);
PatchSet oldCurrentPatchSet = getCurrentPatchSet(changeId);
assertThat(modifier.createEdit(change, oldCurrentPatchSet)).isEqualTo(
RefUpdate.Result.NEW);
assertThat(
modifier.modifyFile(editUtil.byChange(change).get(), FILE_NAME,
RestSession.newRawInput(CONTENT_NEW))).isEqualTo(RefUpdate.Result.FORCED);
RestResponse r = adminSession.post(urlPublish());
assertThat(r.getStatusCode()).isEqualTo(SC_FORBIDDEN);
setUseContributorAgreements(InheritableBoolean.FALSE);
r = adminSession.post(urlPublish());
assertThat(r.getStatusCode()).isEqualTo(SC_NO_CONTENT);
}
@Test
public void rebaseEdit() throws Exception {
assertThat(modifier.createEdit(change, ps)).isEqualTo(RefUpdate.Result.NEW);