Simplify unit tests
Almost all acceptance tests define verbose boilerplate code to inject and initialize common parts, like project, ssh session, user, REST session, review db and git. This change moves that code to the base class. Now the boilerplate code can be removed, as in ProjectIT: public class ProjectIT extends AbstractDaemonTest { - @Inject - private SchemaFactory<ReviewDb> reviewDbProvider; - - @Inject - private GerritApi gApi; - - @Inject - private AcceptanceTestRequestScope atrScope; - - @Inject - private IdentifiedUser.GenericFactory identifiedUserFactory; - - private ReviewDb db; - Project.NameKey project; - - @Before - public void setUp() throws Exception { - project = new Project.NameKey("p"); - SshSession sshSession = new SshSession(server, admin); - createProject(sshSession, project.get()); - db = reviewDbProvider.open(); - atrScope.set(atrScope.newContext(reviewDbProvider, sshSession, - identifiedUserFactory.create(Providers.of(db), admin.getId()))); - } - - @After - public void cleanup() { - db.close(); - } - Change-Id: I7f600dafd4f172e8435d5129ea7fe34dbce4e8cb
This commit is contained in:

committed by
Shawn Pearce

parent
1752b2dc9f
commit
468eaa288e
@@ -14,18 +14,31 @@
|
||||
|
||||
package com.google.gerrit.acceptance;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.initSsh;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.primitives.Chars;
|
||||
import com.google.gerrit.extensions.api.GerritApi;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
import com.google.gerrit.extensions.common.ListChangesOption;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gerrit.server.OutputFormat;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gerrit.server.change.ChangeJson;
|
||||
import com.google.gerrit.testutil.ConfigSuite;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.util.Providers;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.junit.Rule;
|
||||
import org.junit.rules.TestRule;
|
||||
@@ -34,6 +47,10 @@ import org.junit.runner.RunWith;
|
||||
import org.junit.runners.model.Statement;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(ConfigSuite.class)
|
||||
public abstract class AbstractDaemonTest {
|
||||
@@ -43,9 +60,30 @@ public abstract class AbstractDaemonTest {
|
||||
@Inject
|
||||
protected AccountCreator accounts;
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
protected GerritApi gApi;
|
||||
|
||||
@Inject
|
||||
private AcceptanceTestRequestScope atrScope;
|
||||
|
||||
@Inject
|
||||
private IdentifiedUser.GenericFactory identifiedUserFactory;
|
||||
|
||||
@Inject
|
||||
protected PushOneCommit.Factory pushFactory;
|
||||
|
||||
protected Git git;
|
||||
protected GerritServer server;
|
||||
protected TestAccount admin;
|
||||
protected TestAccount user;
|
||||
protected RestSession adminSession;
|
||||
protected RestSession userSession;
|
||||
protected SshSession sshSession;
|
||||
protected ReviewDb db;
|
||||
protected Project.NameKey project;
|
||||
|
||||
@Rule
|
||||
public TestRule testRunner = new TestRule() {
|
||||
@@ -82,8 +120,17 @@ public abstract class AbstractDaemonTest {
|
||||
server = startServer(cfg, memory);
|
||||
server.getTestInjector().injectMembers(this);
|
||||
admin = accounts.admin();
|
||||
user = accounts.user();
|
||||
adminSession = new RestSession(server, admin);
|
||||
userSession = new RestSession(server, user);
|
||||
initSsh(admin);
|
||||
db = reviewDbProvider.open();
|
||||
atrScope.set(atrScope.newContext(reviewDbProvider, sshSession,
|
||||
identifiedUserFactory.create(Providers.of(db), admin.getId())));
|
||||
sshSession = new SshSession(server, admin);
|
||||
project = new Project.NameKey("p");
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
}
|
||||
|
||||
protected GerritServer startServer(Config cfg, boolean memory) throws Exception {
|
||||
@@ -91,20 +138,56 @@ public abstract class AbstractDaemonTest {
|
||||
}
|
||||
|
||||
private void afterTest() throws Exception {
|
||||
db.close();
|
||||
sshSession.close();
|
||||
server.stop();
|
||||
}
|
||||
|
||||
protected ChangeInfo getChange(String changeId, ListChangesOption... options)
|
||||
protected PushOneCommit.Result createChange() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
return push.to(git, "refs/for/master");
|
||||
}
|
||||
|
||||
private static final List<Character> RANDOM =
|
||||
Chars.asList(new char[]{'a','b','c','d','e','f','g','h'});
|
||||
protected PushOneCommit.Result ammendChange(String changeId)
|
||||
throws GitAPIException, IOException {
|
||||
Collections.shuffle(RANDOM);
|
||||
PushOneCommit push =
|
||||
pushFactory.create(db, admin.getIdent(), PushOneCommit.SUBJECT,
|
||||
PushOneCommit.FILE_NAME, new String(Chars.toArray(RANDOM)), changeId);
|
||||
return push.to(git, "refs/for/master");
|
||||
}
|
||||
|
||||
protected ChangeJson.ChangeInfo getChange(String changeId, ListChangesOption... options)
|
||||
throws IOException {
|
||||
return getChange(adminSession, changeId, options);
|
||||
}
|
||||
|
||||
protected ChangeInfo getChange(RestSession session, String changeId,
|
||||
protected ChangeJson.ChangeInfo getChange(RestSession session, String changeId,
|
||||
ListChangesOption... options) throws IOException {
|
||||
String q = options.length > 0 ? "?o=" + Joiner.on("&o=").join(options) : "";
|
||||
RestResponse r = session.get("/changes/" + changeId + q);
|
||||
assertEquals(HttpStatus.SC_OK, r.getStatusCode());
|
||||
return newGson().fromJson(r.getReader(), ChangeInfo.class);
|
||||
return newGson().fromJson(r.getReader(), ChangeJson.ChangeInfo.class);
|
||||
}
|
||||
|
||||
protected ChangeInfo info(String id)
|
||||
throws RestApiException {
|
||||
return gApi.changes().id(id).info();
|
||||
}
|
||||
|
||||
protected ChangeInfo get(String id)
|
||||
throws RestApiException {
|
||||
return gApi.changes().id(id).get();
|
||||
}
|
||||
|
||||
protected ChangeInfo get(String id, ListChangesOption... options)
|
||||
throws RestApiException {
|
||||
EnumSet<ListChangesOption> s = EnumSet.noneOf(ListChangesOption.class);
|
||||
s.addAll(Arrays.asList(options));
|
||||
return gApi.changes().id(id).get(s);
|
||||
}
|
||||
|
||||
protected static Gson newGson() {
|
||||
|
@@ -56,8 +56,7 @@ import java.util.Set;
|
||||
|
||||
public class PushOneCommit {
|
||||
public static final String SUBJECT = "test commit";
|
||||
|
||||
private static final String FILE_NAME = "a.txt";
|
||||
static final String FILE_NAME = "a.txt";
|
||||
private static final String FILE_CONTENT = "some content";
|
||||
|
||||
public interface Factory {
|
||||
|
@@ -14,87 +14,30 @@
|
||||
|
||||
package com.google.gerrit.acceptance.api.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.extensions.api.GerritApi;
|
||||
import com.google.gerrit.extensions.api.changes.AddReviewerInput;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
import com.google.gerrit.extensions.common.ChangeStatus;
|
||||
import com.google.gerrit.extensions.common.ListChangesOption;
|
||||
import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.util.Providers;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.EnumSet;
|
||||
|
||||
public class ChangeIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private GerritApi gApi;
|
||||
|
||||
@Inject
|
||||
private AcceptanceTestRequestScope atrScope;
|
||||
|
||||
@Inject
|
||||
private IdentifiedUser.GenericFactory identifiedUserFactory;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private TestAccount user;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
user = accounts.user();
|
||||
Project.NameKey project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
db = reviewDbProvider.open();
|
||||
atrScope.set(atrScope.newContext(reviewDbProvider, sshSession,
|
||||
identifiedUserFactory.create(Providers.of(db), admin.getId())));
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void get() throws GitAPIException,
|
||||
IOException, RestApiException {
|
||||
PushOneCommit.Result r = createChange();
|
||||
String triplet = "p~master~" + r.getChangeId();
|
||||
ChangeInfo c =
|
||||
gApi.changes()
|
||||
.id(triplet)
|
||||
.get(EnumSet.noneOf(ListChangesOption.class));
|
||||
ChangeInfo c = info(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals("p", c.project);
|
||||
assertEquals("master", c.branch);
|
||||
@@ -164,10 +107,4 @@ public class ChangeIT extends AbstractDaemonTest {
|
||||
.id("p~master~" + r.getChangeId())
|
||||
.addReviewer(in);
|
||||
}
|
||||
|
||||
private PushOneCommit.Result createChange() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
return push.to(git, "refs/for/master");
|
||||
}
|
||||
}
|
||||
|
@@ -14,60 +14,17 @@
|
||||
|
||||
package com.google.gerrit.acceptance.api.project;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.extensions.api.GerritApi;
|
||||
import com.google.gerrit.extensions.api.projects.BranchInput;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.util.Providers;
|
||||
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class ProjectIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private GerritApi gApi;
|
||||
|
||||
@Inject
|
||||
private AcceptanceTestRequestScope atrScope;
|
||||
|
||||
@Inject
|
||||
private IdentifiedUser.GenericFactory identifiedUserFactory;
|
||||
|
||||
private ReviewDb db;
|
||||
Project.NameKey project;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
db = reviewDbProvider.open();
|
||||
atrScope.set(atrScope.newContext(reviewDbProvider, sshSession,
|
||||
identifiedUserFactory.create(Providers.of(db), admin.getId())));
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createBranch() throws GitAPIException,
|
||||
IOException, RestApiException {
|
||||
|
@@ -14,71 +14,21 @@
|
||||
|
||||
package com.google.gerrit.acceptance.api.revision;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.extensions.api.GerritApi;
|
||||
import com.google.gerrit.extensions.api.changes.ChangeApi;
|
||||
import com.google.gerrit.extensions.api.changes.CherryPickInput;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||
import com.google.gerrit.extensions.api.projects.BranchInput;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.util.Providers;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class RevisionIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private GerritApi gApi;
|
||||
|
||||
@Inject
|
||||
private AcceptanceTestRequestScope atrScope;
|
||||
|
||||
@Inject
|
||||
private IdentifiedUser.GenericFactory identifiedUserFactory;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
private Project.NameKey project;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
db = reviewDbProvider.open();
|
||||
atrScope.set(atrScope.newContext(reviewDbProvider, sshSession,
|
||||
identifiedUserFactory.create(Providers.of(db), admin.getId())));
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void reviewTriplet() throws GitAPIException,
|
||||
IOException, RestApiException {
|
||||
@@ -160,13 +110,6 @@ public class RevisionIT extends AbstractDaemonTest {
|
||||
.submit();
|
||||
}
|
||||
|
||||
private PushOneCommit.Result createChange() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent(),
|
||||
"test commit", "a.txt", "some content");
|
||||
return push.to(git, "refs/for/master");
|
||||
}
|
||||
|
||||
private PushOneCommit.Result updateChange(PushOneCommit.Result r,
|
||||
String content) throws GitAPIException, IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent(),
|
||||
|
@@ -15,24 +15,16 @@
|
||||
package com.google.gerrit.acceptance.git;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -43,26 +35,11 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
SSH, HTTP
|
||||
}
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
protected PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Project.NameKey project;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
private String sshUrl;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
sshUrl = sshSession.getUrl();
|
||||
sshSession.close();
|
||||
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
protected void selectProtocol(Protocol p) throws GitAPIException, IOException {
|
||||
@@ -80,11 +57,6 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
git = cloneProject(url + "/" + project.get());
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPushForMaster() throws GitAPIException, OrmException,
|
||||
IOException {
|
||||
@@ -112,7 +84,6 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
public void testPushForMasterWithCc() throws GitAPIException, OrmException,
|
||||
IOException, JSchException {
|
||||
// cc one user
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
String topic = "my/topic";
|
||||
PushOneCommit.Result r = pushTo("refs/for/master/" + topic + "%cc=" + user.email);
|
||||
r.assertOkStatus();
|
||||
@@ -137,7 +108,6 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||
public void testPushForMasterWithReviewer() throws GitAPIException,
|
||||
OrmException, IOException, JSchException {
|
||||
// add one reviewer
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
String topic = "my/topic";
|
||||
PushOneCommit.Result r = pushTo("refs/for/master/" + topic + "%r=" + user.email);
|
||||
r.assertOkStatus();
|
||||
|
@@ -14,26 +14,19 @@
|
||||
|
||||
package com.google.gerrit.acceptance.git;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
|
||||
import static com.google.gerrit.server.project.Util.grant;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -42,9 +35,6 @@ import java.io.IOException;
|
||||
|
||||
public class DraftChangeBlockedIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private ProjectCache projectCache;
|
||||
|
||||
@@ -54,27 +44,13 @@ public class DraftChangeBlockedIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Project.NameKey project;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
ProjectConfig cfg = projectCache.checkedGet(allProjects).getConfig();
|
||||
grant(cfg, Permission.PUSH, ANONYMOUS_USERS,
|
||||
"refs/drafts/*").setBlock();
|
||||
saveProjectConfig(cfg);
|
||||
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
|
||||
db = reviewDbProvider.open();
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.GlobalCapability;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
@@ -36,7 +35,6 @@ import com.google.gson.reflect.TypeToken;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -52,13 +50,6 @@ public class CapabilitiesIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private ProjectCache projectCache;
|
||||
|
||||
private RestSession userSession;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
userSession = new RestSession(server, accounts.user());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCapabilitiesUser() throws IOException,
|
||||
ConfigInvalidException, IllegalArgumentException,
|
||||
|
@@ -14,58 +14,23 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.account;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.PushOneCommit.Result;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class StarredChangesIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
Project.NameKey project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void starredChangeState() throws GitAPIException, IOException,
|
||||
OrmException {
|
||||
@@ -93,9 +58,4 @@ public class StarredChangesIT extends AbstractDaemonTest {
|
||||
assertEquals(204, r.getStatusCode());
|
||||
}
|
||||
}
|
||||
|
||||
private Result createChange() throws GitAPIException, IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
return push.to(git, "refs/for/master");
|
||||
}
|
||||
}
|
||||
|
@@ -36,7 +36,6 @@ import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.client.Project.InheritableBoolean;
|
||||
import com.google.gerrit.reviewdb.client.Project.SubmitType;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.ApprovalsUtil;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gerrit.server.change.ChangeJson.LabelInfo;
|
||||
@@ -45,7 +44,6 @@ import com.google.gerrit.server.notedb.ChangeNotes;
|
||||
import com.google.gerrit.server.project.PutConfig;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
@@ -67,9 +65,6 @@ import java.io.IOException;
|
||||
|
||||
public abstract class AbstractSubmit extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private GitRepositoryManager repoManager;
|
||||
|
||||
@@ -79,16 +74,10 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private ApprovalsUtil approvalsUtil;
|
||||
|
||||
@Inject
|
||||
protected PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Project.NameKey project;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
db = reviewDbProvider.open();
|
||||
project = new Project.NameKey("p2");
|
||||
}
|
||||
|
||||
@After
|
||||
|
@@ -14,32 +14,17 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.extensions.api.GerritApi;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
import com.google.gerrit.extensions.common.ChangeMessageInfo;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.util.Providers;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -47,69 +32,32 @@ import java.util.Iterator;
|
||||
|
||||
public class ChangeMessagesIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private GerritApi gApi;
|
||||
|
||||
@Inject
|
||||
private AcceptanceTestRequestScope atrScope;
|
||||
|
||||
@Inject
|
||||
private IdentifiedUser.GenericFactory identifiedUserFactory;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
Project.NameKey project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
db = reviewDbProvider.open();
|
||||
atrScope.set(atrScope.newContext(reviewDbProvider, sshSession,
|
||||
identifiedUserFactory.create(Providers.of(db), admin.getId())));
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void messagesNotReturnedByDefault() throws GitAPIException,
|
||||
IOException, RestApiException {
|
||||
String changeId = createChange();
|
||||
public void messagesNotReturnedByDefault() throws Exception {
|
||||
String changeId = createChange().getChangeId();
|
||||
postMessage(changeId, "Some nits need to be fixed.");
|
||||
ChangeInfo c = getChange("p~master~" + changeId);
|
||||
ChangeInfo c = info(changeId);
|
||||
assertNull(c.messages);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultMessage() throws GitAPIException, IOException,
|
||||
RestApiException {
|
||||
String changeId = createChange();
|
||||
ChangeInfo c = getChangeAll("p~master~" + changeId);
|
||||
String changeId = createChange().getChangeId();
|
||||
ChangeInfo c = get(changeId);
|
||||
assertNotNull(c.messages);
|
||||
assertEquals(1, c.messages.size());
|
||||
assertEquals("Uploaded patch set 1.", c.messages.iterator().next().message);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void messagesReturnedInChronologicalOrder() throws GitAPIException,
|
||||
IOException, RestApiException {
|
||||
String changeId = createChange();
|
||||
public void messagesReturnedInChronologicalOrder() throws Exception {
|
||||
String changeId = createChange().getChangeId();
|
||||
String firstMessage = "Some nits need to be fixed.";
|
||||
postMessage(changeId, firstMessage);
|
||||
String secondMessage = "I like this feature.";
|
||||
postMessage(changeId, secondMessage);
|
||||
ChangeInfo c = getChangeAll("p~master~" + changeId);
|
||||
ChangeInfo c = get(changeId);
|
||||
assertNotNull(c.messages);
|
||||
assertEquals(3, c.messages.size());
|
||||
Iterator<ChangeMessageInfo> it = c.messages.iterator();
|
||||
@@ -118,30 +66,13 @@ public class ChangeMessagesIT extends AbstractDaemonTest {
|
||||
assertMessage(secondMessage, it.next().message);
|
||||
}
|
||||
|
||||
private String createChange() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
return push.to(git, "refs/for/master").getChangeId();
|
||||
}
|
||||
|
||||
private void assertMessage(String expected, String actual) {
|
||||
assertEquals("Patch Set 1:\n\n" + expected, actual);
|
||||
}
|
||||
|
||||
private void postMessage(String changeId, String msg) throws IOException {
|
||||
private void postMessage(String changeId, String msg) throws Exception {
|
||||
ReviewInput in = new ReviewInput();
|
||||
in.message = msg;
|
||||
adminSession.post("/changes/" + changeId + "/revisions/1/review", in)
|
||||
.consume();
|
||||
}
|
||||
|
||||
private ChangeInfo getChange(String triplet)
|
||||
throws RestApiException {
|
||||
return gApi.changes().id(triplet).info();
|
||||
}
|
||||
|
||||
private ChangeInfo getChangeAll(String triplet)
|
||||
throws RestApiException {
|
||||
return gApi.changes().id(triplet).get();
|
||||
gApi.changes().id(changeId).current().review(in);
|
||||
}
|
||||
}
|
||||
|
@@ -30,91 +30,65 @@ import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
public class ChangeOwnerIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
|
||||
@Inject
|
||||
private ProjectCache projectCache;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private TestAccount owner;
|
||||
private TestAccount dev;
|
||||
private TestAccount user2;
|
||||
|
||||
private RestSession sessionOwner;
|
||||
private RestSession sessionDev;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
private Project.NameKey project;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
newProject();
|
||||
owner = accounts.user();
|
||||
sessionOwner = new RestSession(server, owner);
|
||||
SshSession sshSession = new SshSession(server, owner);
|
||||
initSsh(owner);
|
||||
sessionOwner = new RestSession(server, user);
|
||||
SshSession sshSession = new SshSession(server, user);
|
||||
initSsh(user);
|
||||
// need to initialize intern session
|
||||
createProject(sshSession, "foo");
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
dev = accounts.user2();
|
||||
sessionDev = new RestSession(server, dev);
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
user2 = accounts.user2();
|
||||
sessionDev = new RestSession(server, user2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeOwner_OwnerACLNotGranted() throws GitAPIException,
|
||||
IOException, OrmException, ConfigInvalidException {
|
||||
approve(sessionOwner, createChange(), HttpStatus.SC_FORBIDDEN);
|
||||
approve(sessionOwner, createMyChange(), HttpStatus.SC_FORBIDDEN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeOwner_OwnerACLGranted() throws GitAPIException,
|
||||
IOException, OrmException, ConfigInvalidException {
|
||||
grantApproveToChangeOwner();
|
||||
approve(sessionOwner, createChange(), HttpStatus.SC_OK);
|
||||
approve(sessionOwner, createMyChange(), HttpStatus.SC_OK);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeOwner_NotOwnerACLGranted() throws GitAPIException,
|
||||
IOException, OrmException, ConfigInvalidException {
|
||||
grantApproveToChangeOwner();
|
||||
approve(sessionDev, createChange(), HttpStatus.SC_FORBIDDEN);
|
||||
approve(sessionDev, createMyChange(), HttpStatus.SC_FORBIDDEN);
|
||||
}
|
||||
|
||||
private void approve(RestSession s, String changeId, int expected)
|
||||
@@ -142,17 +116,9 @@ public class ChangeOwnerIT extends AbstractDaemonTest {
|
||||
projectCache.evict(config.getProject());
|
||||
}
|
||||
|
||||
private String createChange() throws GitAPIException,
|
||||
private String createMyChange() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, owner.getIdent());
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent());
|
||||
return push.to(git, "refs/for/master").getChangeId();
|
||||
}
|
||||
|
||||
private void newProject() throws UnsupportedEncodingException,
|
||||
OrmException, JSchException, IOException {
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
sshSession.close();
|
||||
}
|
||||
}
|
||||
|
@@ -15,7 +15,6 @@
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.checkout;
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -23,23 +22,16 @@ import com.google.common.base.Function;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.GitUtil;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -47,27 +39,11 @@ import java.util.Set;
|
||||
|
||||
public class ConflictsOperatorIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Project.NameKey project;
|
||||
private ReviewDb db;
|
||||
private int count;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noConflictingChanges() throws JSchException, IOException,
|
||||
GitAPIException {
|
||||
Git git = createProject();
|
||||
PushOneCommit.Result change = createChange(git, true);
|
||||
createChange(git, false);
|
||||
|
||||
@@ -78,7 +54,6 @@ public class ConflictsOperatorIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void conflictingChanges() throws JSchException, IOException,
|
||||
GitAPIException {
|
||||
Git git = createProject();
|
||||
PushOneCommit.Result change = createChange(git, true);
|
||||
PushOneCommit.Result conflictingChange1 = createChange(git, true);
|
||||
PushOneCommit.Result conflictingChange2 = createChange(git, true);
|
||||
@@ -88,17 +63,6 @@ public class ConflictsOperatorIT extends AbstractDaemonTest {
|
||||
assertChanges(changes, conflictingChange1, conflictingChange2);
|
||||
}
|
||||
|
||||
private Git createProject() throws JSchException, IOException,
|
||||
GitAPIException {
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
try {
|
||||
GitUtil.createProject(sshSession, project.get(), null, true);
|
||||
return cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
} finally {
|
||||
sshSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
private PushOneCommit.Result createChange(Git git, boolean conflicting)
|
||||
throws GitAPIException, IOException {
|
||||
checkout(git, "origin/master");
|
||||
|
@@ -14,8 +14,6 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
@@ -23,57 +21,28 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
import com.google.gerrit.extensions.common.ChangeStatus;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class DeleteDraftChangeIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
Project.NameKey project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteChange() throws GitAPIException,
|
||||
IOException {
|
||||
String changeId = createChange();
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.NEW, c.status);
|
||||
IOException, RestApiException {
|
||||
String changeId = createChange().getChangeId();
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.NEW, c.status);
|
||||
RestResponse r = deleteChange(changeId, adminSession);
|
||||
assertEquals("Change is not a draft", r.getEntityContent());
|
||||
assertEquals(409, r.getStatusCode());
|
||||
@@ -81,45 +50,41 @@ public class DeleteDraftChangeIT extends AbstractDaemonTest {
|
||||
|
||||
@Test
|
||||
public void deleteDraftChange() throws GitAPIException,
|
||||
IOException, OrmException {
|
||||
IOException, RestApiException, OrmException {
|
||||
String changeId = createDraftChange();
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.DRAFT, c.status);
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.DRAFT, c.status);
|
||||
RestResponse r = deleteChange(changeId, adminSession);
|
||||
assertEquals(204, r.getStatusCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void publishDraftChange() throws GitAPIException,
|
||||
IOException {
|
||||
IOException, RestApiException {
|
||||
String changeId = createDraftChange();
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.DRAFT, c.status);
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.DRAFT, c.status);
|
||||
RestResponse r = publishChange(changeId);
|
||||
assertEquals(204, r.getStatusCode());
|
||||
c = getChange(changeId);
|
||||
assertEquals(Change.Status.NEW, c.status);
|
||||
c = get(triplet);
|
||||
assertEquals(ChangeStatus.NEW, c.status);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void publishDraftPatchSet() throws GitAPIException,
|
||||
IOException, OrmException {
|
||||
IOException, OrmException, RestApiException {
|
||||
String changeId = createDraftChange();
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.DRAFT, c.status);
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.DRAFT, c.status);
|
||||
RestResponse r = publishPatchSet(changeId);
|
||||
assertEquals(204, r.getStatusCode());
|
||||
c = getChange(changeId);
|
||||
assertEquals(Change.Status.NEW, c.status);
|
||||
}
|
||||
|
||||
private String createChange() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
return push.to(git, "refs/for/master").getChangeId();
|
||||
assertEquals(ChangeStatus.NEW, get(triplet).status);
|
||||
}
|
||||
|
||||
private String createDraftChange() throws GitAPIException, IOException {
|
||||
|
@@ -14,8 +14,6 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
@@ -24,90 +22,53 @@ import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.PushOneCommit.Result;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
import com.google.gerrit.extensions.common.ChangeStatus;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class DeleteDraftPatchSetIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private TestAccount user;
|
||||
|
||||
private RestSession userSession;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
user = accounts.create("user", "user@example.com", "User");
|
||||
userSession = new RestSession(server, user);
|
||||
Project.NameKey project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deletePatchSet() throws GitAPIException,
|
||||
IOException, OrmException {
|
||||
String changeId = createChangeWith2PS("refs/for/master");
|
||||
public void deletePatchSet() throws Exception {
|
||||
String changeId = createChange().getChangeId();
|
||||
PatchSet ps = getCurrentPatchSet(changeId);
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.NEW, c.status);
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.NEW, c.status);
|
||||
RestResponse r = deletePatchSet(changeId, ps, adminSession);
|
||||
assertEquals("Patch set is not a draft.", r.getEntityContent());
|
||||
assertEquals(409, r.getStatusCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteDraftPatchSetNoACL() throws GitAPIException,
|
||||
IOException, OrmException {
|
||||
String changeId = createChangeWith2PS("refs/drafts/master");
|
||||
public void deleteDraftPatchSetNoACL() throws Exception {
|
||||
String changeId = createDraftChangeWith2PS();
|
||||
PatchSet ps = getCurrentPatchSet(changeId);
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.DRAFT, c.status);
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.DRAFT, c.status);
|
||||
RestResponse r = deletePatchSet(changeId, ps, userSession);
|
||||
assertEquals("Not found", r.getEntityContent());
|
||||
assertEquals(404, r.getStatusCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteDraftPatchSetAndChange() throws GitAPIException,
|
||||
IOException, OrmException {
|
||||
String changeId = createChangeWith2PS("refs/drafts/master");
|
||||
public void deleteDraftPatchSetAndChange() throws Exception {
|
||||
String changeId = createDraftChangeWith2PS();
|
||||
PatchSet ps = getCurrentPatchSet(changeId);
|
||||
ChangeInfo c = getChange(changeId);
|
||||
assertEquals("p~master~" + changeId, c.id);
|
||||
assertEquals(Change.Status.DRAFT, c.status);
|
||||
String triplet = "p~master~" + changeId;
|
||||
ChangeInfo c = get(triplet);
|
||||
assertEquals(triplet, c.id);
|
||||
assertEquals(ChangeStatus.DRAFT, c.status);
|
||||
RestResponse r = deletePatchSet(changeId, ps, adminSession);
|
||||
assertEquals(204, r.getStatusCode());
|
||||
Change change = Iterables.getOnlyElement(db.changes().byKey(
|
||||
@@ -121,13 +82,13 @@ public class DeleteDraftPatchSetIT extends AbstractDaemonTest {
|
||||
.toList().size());
|
||||
}
|
||||
|
||||
private String createChangeWith2PS(String ref) throws GitAPIException,
|
||||
private String createDraftChangeWith2PS() throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
Result result = push.to(git, ref);
|
||||
Result result = push.to(git, "refs/drafts/master");
|
||||
push = pushFactory.create(db, admin.getIdent(), PushOneCommit.SUBJECT,
|
||||
"b.txt", "4711", result.getChangeId());
|
||||
return push.to(git, ref).getChangeId();
|
||||
return push.to(git, "refs/drafts/master").getChangeId();
|
||||
}
|
||||
|
||||
private PatchSet getCurrentPatchSet(String changeId) throws OrmException {
|
||||
|
@@ -14,8 +14,6 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.extensions.common.ListChangesOption.ALL_REVISIONS;
|
||||
import static com.google.gerrit.extensions.common.ListChangesOption.CURRENT_REVISION;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@@ -25,15 +23,8 @@ import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -41,26 +32,11 @@ import java.util.List;
|
||||
|
||||
public class ListChangesOptionsIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
protected PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Project.NameKey project;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
private String changeId;
|
||||
private List<PushOneCommit.Result> results;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
db = reviewDbProvider.open();
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
|
||||
results = Lists.newArrayList();
|
||||
results.add(push("file contents", null));
|
||||
changeId = results.get(0).getChangeId();
|
||||
@@ -79,21 +55,16 @@ public class ListChangesOptionsIT extends AbstractDaemonTest {
|
||||
return r;
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noRevisionOptions() throws Exception {
|
||||
ChangeInfo c = getChange(changeId);
|
||||
ChangeInfo c = info(changeId);
|
||||
assertNull(c.currentRevision);
|
||||
assertNull(c.revisions);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void currentRevision() throws Exception {
|
||||
ChangeInfo c = getChange(changeId, CURRENT_REVISION);
|
||||
ChangeInfo c = get(changeId, CURRENT_REVISION);
|
||||
assertEquals(commitId(2), c.currentRevision);
|
||||
assertEquals(ImmutableSet.of(commitId(2)), c.revisions.keySet());
|
||||
assertEquals(3, c.revisions.get(commitId(2))._number);
|
||||
@@ -101,7 +72,7 @@ public class ListChangesOptionsIT extends AbstractDaemonTest {
|
||||
|
||||
@Test
|
||||
public void allRevisions() throws Exception {
|
||||
ChangeInfo c = getChange(changeId, ALL_REVISIONS);
|
||||
ChangeInfo c = get(changeId, ALL_REVISIONS);
|
||||
assertEquals(commitId(2), c.currentRevision);
|
||||
assertEquals(ImmutableSet.of(commitId(0), commitId(1), commitId(2)),
|
||||
c.revisions.keySet());
|
||||
|
@@ -14,26 +14,15 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.GerritConfig;
|
||||
import com.google.gerrit.acceptance.GerritConfigs;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.change.SuggestReviewers.SuggestedReviewerInfo;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -42,16 +31,6 @@ import java.util.List;
|
||||
|
||||
public class SuggestReviewersIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
private Project.NameKey project;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
group("users1");
|
||||
@@ -61,25 +40,13 @@ public class SuggestReviewersIT extends AbstractDaemonTest {
|
||||
accounts.create("user1", "user1@example.com", "User1", "users1");
|
||||
accounts.create("user2", "user2@example.com", "User2", "users2");
|
||||
accounts.create("user3", "user3@example.com", "User3", "users1", "users2");
|
||||
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
@GerritConfig(name = "suggest.accounts", value = "false")
|
||||
public void suggestReviewersNoResult1() throws GitAPIException, IOException,
|
||||
Exception {
|
||||
String changeId = createChange(admin);
|
||||
String changeId = createChange().getChangeId();
|
||||
List<SuggestedReviewerInfo> reviewers = suggestReviewers(changeId, "u", 6);
|
||||
assertEquals(reviewers.size(), 0);
|
||||
}
|
||||
@@ -92,7 +59,7 @@ public class SuggestReviewersIT extends AbstractDaemonTest {
|
||||
})
|
||||
public void suggestReviewersNoResult2() throws GitAPIException, IOException,
|
||||
Exception {
|
||||
String changeId = createChange(admin);
|
||||
String changeId = createChange().getChangeId();
|
||||
List<SuggestedReviewerInfo> reviewers = suggestReviewers(changeId, "u", 6);
|
||||
assertEquals(reviewers.size(), 0);
|
||||
}
|
||||
@@ -101,7 +68,7 @@ public class SuggestReviewersIT extends AbstractDaemonTest {
|
||||
@GerritConfig(name = "suggest.from", value = "2")
|
||||
public void suggestReviewersNoResult3() throws GitAPIException, IOException,
|
||||
Exception {
|
||||
String changeId = createChange(admin);
|
||||
String changeId = createChange().getChangeId();
|
||||
List<SuggestedReviewerInfo> reviewers = suggestReviewers(changeId, "u", 6);
|
||||
assertEquals(reviewers.size(), 0);
|
||||
}
|
||||
@@ -109,7 +76,7 @@ public class SuggestReviewersIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void suggestReviewersChange() throws GitAPIException,
|
||||
IOException, Exception {
|
||||
String changeId = createChange(admin);
|
||||
String changeId = createChange().getChangeId();
|
||||
List<SuggestedReviewerInfo> reviewers = suggestReviewers(changeId, "u", 6);
|
||||
assertEquals(reviewers.size(), 6);
|
||||
reviewers = suggestReviewers(changeId, "u", 5);
|
||||
@@ -136,10 +103,4 @@ public class SuggestReviewersIT extends AbstractDaemonTest {
|
||||
private void group(String name) throws IOException {
|
||||
adminSession.put("/groups/" + name, new Object()).consume();
|
||||
}
|
||||
|
||||
private String createChange(TestAccount account) throws GitAPIException,
|
||||
IOException {
|
||||
PushOneCommit push = pushFactory.create(db, account.getIdent());
|
||||
return push.to(git, "refs/for/master").getChangeId();
|
||||
}
|
||||
}
|
||||
|
@@ -89,12 +89,11 @@ public class AddRemoveGroupMembersIT extends AbstractDaemonTest {
|
||||
|
||||
@Test
|
||||
public void addRemoveMember() throws Exception {
|
||||
TestAccount u = accounts.create("user", "user@example.com", "Full Name");
|
||||
RestResponse r = PUT("/groups/Administrators/members/user");
|
||||
assertEquals(HttpStatus.SC_CREATED, r.getStatusCode());
|
||||
AccountInfo ai = newGson().fromJson(r.getReader(), AccountInfo.class);
|
||||
assertAccountInfo(u, ai);
|
||||
assertMembers("Administrators", admin, u);
|
||||
assertAccountInfo(user, ai);
|
||||
assertMembers("Administrators", admin, user);
|
||||
r.consume();
|
||||
|
||||
assertEquals(HttpStatus.SC_NO_CONTENT,
|
||||
|
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertNotNull;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import com.google.gerrit.server.account.GroupCache;
|
||||
import com.google.gerrit.server.group.CreateGroup;
|
||||
@@ -71,7 +70,6 @@ public class CreateGroupIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void testCreateGroupWithoutCapability_Forbidden() throws OrmException,
|
||||
JSchException, IOException {
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
RestResponse r = (new RestSession(server, user)).put("/groups/newGroup");
|
||||
assertEquals(HttpStatus.SC_FORBIDDEN, r.getStatusCode());
|
||||
}
|
||||
|
@@ -22,12 +22,9 @@ import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.group.GroupJson.GroupInfo;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
@@ -46,9 +43,6 @@ import java.util.Set;
|
||||
*/
|
||||
public class DefaultGroupsIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Test
|
||||
public void defaultGroupsCreated_ssh() throws JSchException, IOException {
|
||||
SshSession session = new SshSession(server, admin);
|
||||
@@ -72,16 +66,11 @@ public class DefaultGroupsIT extends AbstractDaemonTest {
|
||||
|
||||
@Test
|
||||
public void defaultGroupsCreated_internals() throws OrmException {
|
||||
ReviewDb db = reviewDbProvider.open();
|
||||
try {
|
||||
Set<String> names = Sets.newHashSet();
|
||||
for (AccountGroup g : db.accountGroups().all()) {
|
||||
names.add(g.getName());
|
||||
}
|
||||
assertTrue(names.contains("Administrators"));
|
||||
assertTrue(names.contains("Non-Interactive Users"));
|
||||
} finally {
|
||||
db.close();
|
||||
Set<String> names = Sets.newHashSet();
|
||||
for (AccountGroup g : db.accountGroups().all()) {
|
||||
names.add(g.getName());
|
||||
}
|
||||
assertTrue(names.contains("Administrators"));
|
||||
assertTrue(names.contains("Non-Interactive Users"));
|
||||
}
|
||||
}
|
||||
|
@@ -24,8 +24,6 @@ import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.common.Nullable;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import com.google.gerrit.server.account.GroupCache;
|
||||
@@ -69,9 +67,6 @@ public class ListGroupsIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void testOnlyVisibleGroupsReturned() throws OrmException,
|
||||
JSchException, IOException {
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
RestSession userSession = new RestSession(server, user);
|
||||
|
||||
String newGroupName = "newGroup";
|
||||
CreateGroup.Input in = new CreateGroup.Input();
|
||||
in.description = "a hidden group";
|
||||
|
@@ -14,19 +14,14 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.project;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.reviewdb.client.Branch;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
@@ -51,25 +46,11 @@ public class CreateBranchIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private AllProjectsNameProvider allProjects;
|
||||
|
||||
private RestSession userSession;
|
||||
|
||||
private Project.NameKey project;
|
||||
private Branch.NameKey branch;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
userSession = new RestSession(server, user);
|
||||
|
||||
project = new Project.NameKey("p");
|
||||
branch = new Branch.NameKey(project, "test");
|
||||
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
try {
|
||||
createProject(sshSession, project.get(), null, true);
|
||||
} finally {
|
||||
sshSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -24,8 +24,6 @@ import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.client.Project.InheritableBoolean;
|
||||
@@ -194,8 +192,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void testCreateProjectWithoutCapability_Forbidden() throws OrmException,
|
||||
JSchException, IOException {
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
RestResponse r = new RestSession(server, user).put("/projects/newProject");
|
||||
RestResponse r = userSession.put("/projects/newProject");
|
||||
assertEquals(HttpStatus.SC_FORBIDDEN, r.getStatusCode());
|
||||
}
|
||||
|
||||
|
@@ -14,19 +14,14 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.project;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.reviewdb.client.Branch;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
@@ -52,26 +47,11 @@ public class DeleteBranchIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private AllProjectsNameProvider allProjects;
|
||||
|
||||
private RestSession userSession;
|
||||
|
||||
private Project.NameKey project;
|
||||
private Branch.NameKey branch;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
TestAccount user = accounts.create("user", "user@example.com", "User");
|
||||
userSession = new RestSession(server, user);
|
||||
|
||||
project = new Project.NameKey("p");
|
||||
branch = new Branch.NameKey(project, "test");
|
||||
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
try {
|
||||
createProject(sshSession, project.get(), null, true);
|
||||
} finally {
|
||||
sshSession.close();
|
||||
}
|
||||
|
||||
adminSession.put("/projects/" + project.get()
|
||||
+ "/branches/" + branch.getShortName()).consume();
|
||||
}
|
||||
|
@@ -20,8 +20,6 @@ import static org.junit.Assert.assertEquals;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.GcAssert;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.UseLocalDisk;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
@@ -49,14 +47,11 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
|
||||
project1 = new Project.NameKey("p1");
|
||||
createProject(sshSession, project1.get());
|
||||
|
||||
project2 = new Project.NameKey("p2");
|
||||
createProject(sshSession, project2.get());
|
||||
sshSession.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -65,10 +60,11 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGcNotAllowed_Forbidden() throws IOException, OrmException, JSchException {
|
||||
public void testGcNotAllowed_Forbidden() throws IOException, OrmException,
|
||||
JSchException {
|
||||
assertEquals(HttpStatus.SC_FORBIDDEN,
|
||||
new RestSession(server, accounts.create("user", "user@example.com", "User"))
|
||||
.post("/projects/" + allProjects.get() + "/gc").getStatusCode());
|
||||
userSession.post("/projects/" + allProjects.get() + "/gc")
|
||||
.getStatusCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -14,7 +14,6 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.project;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.acceptance.rest.project.BranchAssert.assertBranches;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@@ -23,13 +22,10 @@ import com.google.common.collect.Lists;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
@@ -37,18 +33,14 @@ import com.google.gerrit.server.project.ListBranches.BranchInfo;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||
import org.eclipse.jgit.errors.RepositoryNotFoundException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -63,32 +55,6 @@ public class ListBranchesIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private ProjectCache projectCache;
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private SshSession sshSession;
|
||||
private Project.NameKey project;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
project = new Project.NameKey("p");
|
||||
sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
sshSession.close();
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void listBranchesOfNonExistingProject_NotFound() throws IOException {
|
||||
assertEquals(HttpStatus.SC_NOT_FOUND,
|
||||
@@ -99,9 +65,8 @@ public class ListBranchesIT extends AbstractDaemonTest {
|
||||
public void listBranchesOfNonVisibleProject_NotFound() throws IOException,
|
||||
OrmException, JSchException, ConfigInvalidException {
|
||||
blockRead(project, "refs/*");
|
||||
RestSession session = new RestSession(server, accounts.user());
|
||||
assertEquals(HttpStatus.SC_NOT_FOUND,
|
||||
session.get("/projects/" + project.get() + "/branches").getStatusCode());
|
||||
userSession.get("/projects/" + project.get() + "/branches").getStatusCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -145,12 +110,10 @@ public class ListBranchesIT extends AbstractDaemonTest {
|
||||
public void listBranchesSomeHidden() throws IOException, GitAPIException,
|
||||
ConfigInvalidException, OrmException, JSchException {
|
||||
blockRead(project, "refs/heads/dev");
|
||||
RestSession session =
|
||||
new RestSession(server, accounts.create("user", "user@example.com", "User"));
|
||||
pushTo("refs/heads/master");
|
||||
String masterCommit = git.getRepository().getRef("master").getTarget().getObjectId().getName();
|
||||
pushTo("refs/heads/dev");
|
||||
RestResponse r = session.get("/projects/" + project.get() + "/branches");
|
||||
RestResponse r = userSession.get("/projects/" + project.get() + "/branches");
|
||||
// refs/meta/config is hidden since user is no project owner
|
||||
List<BranchInfo> expected = Lists.asList(
|
||||
new BranchInfo("HEAD", "master", false),
|
||||
@@ -164,12 +127,10 @@ public class ListBranchesIT extends AbstractDaemonTest {
|
||||
public void listBranchesHeadHidden() throws IOException, GitAPIException,
|
||||
ConfigInvalidException, OrmException, JSchException {
|
||||
blockRead(project, "refs/heads/master");
|
||||
RestSession session =
|
||||
new RestSession(server, accounts.create("user", "user@example.com", "User"));
|
||||
pushTo("refs/heads/master");
|
||||
pushTo("refs/heads/dev");
|
||||
String devCommit = git.getRepository().getRef("master").getTarget().getObjectId().getName();
|
||||
RestResponse r = session.get("/projects/" + project.get() + "/branches");
|
||||
RestResponse r = userSession.get("/projects/" + project.get() + "/branches");
|
||||
// refs/meta/config is hidden since user is no project owner
|
||||
assertBranches(Collections.singletonList(new BranchInfo("refs/heads/dev",
|
||||
devCommit, false)), toBranchInfoList(r));
|
||||
|
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
import com.google.gerrit.server.project.ProjectJson.ProjectInfo;
|
||||
@@ -52,27 +51,27 @@ public class ListChildProjectsIT extends AbstractDaemonTest {
|
||||
public void listNoChildren() throws IOException {
|
||||
RestResponse r = GET("/projects/" + allProjects.get() + "/children/");
|
||||
assertEquals(HttpStatus.SC_OK, r.getStatusCode());
|
||||
assertTrue(toProjectInfoList(r).isEmpty());
|
||||
List<ProjectInfo> projectInfoList = toProjectInfoList(r);
|
||||
// Project 'p' was already created in the base class
|
||||
assertTrue(projectInfoList.size() == 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void listChildren() throws IOException, JSchException {
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
Project.NameKey existingProject = new Project.NameKey("p");
|
||||
Project.NameKey child1 = new Project.NameKey("p1");
|
||||
createProject(sshSession, child1.get());
|
||||
Project.NameKey child2 = new Project.NameKey("p2");
|
||||
createProject(sshSession, child2.get());
|
||||
createProject(sshSession, "p1.1", child1);
|
||||
sshSession.close();
|
||||
|
||||
RestResponse r = GET("/projects/" + allProjects.get() + "/children/");
|
||||
assertEquals(HttpStatus.SC_OK, r.getStatusCode());
|
||||
assertProjects(Arrays.asList(child1, child2), toProjectInfoList(r));
|
||||
assertProjects(Arrays.asList(existingProject, child1, child2), toProjectInfoList(r));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void listChildrenRecursively() throws IOException, JSchException {
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
Project.NameKey child1 = new Project.NameKey("p1");
|
||||
createProject(sshSession, child1.get());
|
||||
createProject(sshSession, "p2");
|
||||
@@ -84,12 +83,11 @@ public class ListChildProjectsIT extends AbstractDaemonTest {
|
||||
createProject(sshSession, child1_1_1.get(), child1_1);
|
||||
Project.NameKey child1_1_1_1 = new Project.NameKey("p1.1.1.1");
|
||||
createProject(sshSession, child1_1_1_1.get(), child1_1_1);
|
||||
sshSession.close();
|
||||
|
||||
RestResponse r = GET("/projects/" + child1.get() + "/children/?recursive");
|
||||
assertEquals(HttpStatus.SC_OK, r.getStatusCode());
|
||||
assertProjects(Arrays.asList(child1_1, child1_2, child1_1_1, child1_1_1_1),
|
||||
toProjectInfoList(r));
|
||||
assertProjects(Arrays.asList(child1_1, child1_2,
|
||||
child1_1_1, child1_1_1_1), toProjectInfoList(r));
|
||||
}
|
||||
|
||||
private static List<ProjectInfo> toProjectInfoList(RestResponse r)
|
||||
|
@@ -19,9 +19,6 @@ import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.acceptance.RestSession;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
||||
import com.google.gerrit.server.project.SetParent;
|
||||
@@ -30,8 +27,6 @@ import com.google.inject.Inject;
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -41,32 +36,12 @@ public class SetParentIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private AllProjectsNameProvider allProjects;
|
||||
|
||||
private RestSession userSession;
|
||||
private SshSession sshSession;
|
||||
|
||||
private String project;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
TestAccount user = accounts.user();
|
||||
userSession = new RestSession(server, user);
|
||||
|
||||
sshSession = new SshSession(server, admin);
|
||||
project = "p";
|
||||
createProject(sshSession, project, null, true);
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
sshSession.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setParent_Forbidden() throws IOException, JSchException {
|
||||
String parent = "parent";
|
||||
createProject(sshSession, parent, null, true);
|
||||
RestResponse r =
|
||||
userSession.put("/projects/" + project + "/parent",
|
||||
userSession.put("/projects/" + project.get() + "/parent",
|
||||
newParentInput(parent));
|
||||
assertEquals(HttpStatus.SC_FORBIDDEN, r.getStatusCode());
|
||||
r.consume();
|
||||
@@ -77,12 +52,12 @@ public class SetParentIT extends AbstractDaemonTest {
|
||||
String parent = "parent";
|
||||
createProject(sshSession, parent, null, true);
|
||||
RestResponse r =
|
||||
adminSession.put("/projects/" + project + "/parent",
|
||||
adminSession.put("/projects/" + project.get() + "/parent",
|
||||
newParentInput(parent));
|
||||
assertEquals(HttpStatus.SC_OK, r.getStatusCode());
|
||||
r.consume();
|
||||
|
||||
r = adminSession.get("/projects/" + project + "/parent");
|
||||
r = adminSession.get("/projects/" + project.get() + "/parent");
|
||||
assertEquals(HttpStatus.SC_OK, r.getStatusCode());
|
||||
String newParent =
|
||||
newGson().fromJson(r.getReader(), String.class);
|
||||
@@ -94,7 +69,7 @@ public class SetParentIT extends AbstractDaemonTest {
|
||||
public void setParentForAllProjects_Conflict() throws IOException {
|
||||
RestResponse r =
|
||||
adminSession.put("/projects/" + allProjects.get() + "/parent",
|
||||
newParentInput(project));
|
||||
newParentInput(project.get()));
|
||||
assertEquals(HttpStatus.SC_CONFLICT, r.getStatusCode());
|
||||
r.consume();
|
||||
}
|
||||
@@ -102,21 +77,21 @@ public class SetParentIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void setInvalidParent_Conflict() throws IOException, JSchException {
|
||||
RestResponse r =
|
||||
adminSession.put("/projects/" + project + "/parent",
|
||||
newParentInput(project));
|
||||
adminSession.put("/projects/" + project.get() + "/parent",
|
||||
newParentInput(project.get()));
|
||||
assertEquals(HttpStatus.SC_CONFLICT, r.getStatusCode());
|
||||
r.consume();
|
||||
|
||||
String child = "child";
|
||||
createProject(sshSession, child, new Project.NameKey(project), true);
|
||||
r = adminSession.put("/projects/" + project + "/parent",
|
||||
createProject(sshSession, child, project, true);
|
||||
r = adminSession.put("/projects/" + project.get() + "/parent",
|
||||
newParentInput(child));
|
||||
assertEquals(HttpStatus.SC_CONFLICT, r.getStatusCode());
|
||||
r.consume();
|
||||
|
||||
String grandchild = "grandchild";
|
||||
createProject(sshSession, grandchild, new Project.NameKey(child), true);
|
||||
r = adminSession.put("/projects/" + project + "/parent",
|
||||
r = adminSession.put("/projects/" + project.get() + "/parent",
|
||||
newParentInput(grandchild));
|
||||
assertEquals(HttpStatus.SC_CONFLICT, r.getStatusCode());
|
||||
r.consume();
|
||||
@@ -125,7 +100,7 @@ public class SetParentIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void setNonExistingParent_UnprocessibleEntity() throws IOException {
|
||||
RestResponse r =
|
||||
adminSession.put("/projects/" + project + "/parent",
|
||||
adminSession.put("/projects/" + project.get() + "/parent",
|
||||
newParentInput("non-existing"));
|
||||
assertEquals(HttpStatus.SC_UNPROCESSABLE_ENTITY, r.getStatusCode());
|
||||
r.consume();
|
||||
|
@@ -15,9 +15,7 @@
|
||||
package com.google.gerrit.acceptance.server.change;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.add;
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createCommit;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.pushHead;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
@@ -26,22 +24,14 @@ import com.google.common.collect.Iterables;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.GitUtil.Commit;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.change.GetRelated.ChangeAndCommit;
|
||||
import com.google.gerrit.server.change.GetRelated.RelatedInfo;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.ResetCommand.ResetType;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -49,30 +39,6 @@ import java.util.List;
|
||||
|
||||
public class GetRelatedIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
Project.NameKey project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
sshSession.close();
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getRelatedNoResult() throws GitAPIException,
|
||||
IOException, Exception {
|
||||
|
@@ -15,64 +15,32 @@
|
||||
package com.google.gerrit.acceptance.server.project;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.extensions.common.ListChangesOption.DETAILED_LABELS;
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
|
||||
import static com.google.gerrit.server.project.Util.grant;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
import com.google.gerrit.acceptance.TestAccount;
|
||||
import com.google.gerrit.common.data.LabelType;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.extensions.api.GerritApi;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||
import com.google.gerrit.extensions.api.changes.RevisionApi;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||
import com.google.gerrit.server.change.ChangeJson.LabelInfo;
|
||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||
import com.google.gerrit.extensions.common.LabelInfo;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.util.Providers;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class LabelTypeIT extends AbstractDaemonTest {
|
||||
|
||||
@Inject
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
@Inject
|
||||
private GitRepositoryManager repoManager;
|
||||
|
||||
@Inject
|
||||
private GerritApi gApi;
|
||||
|
||||
@Inject
|
||||
private AcceptanceTestRequestScope atrScope;
|
||||
|
||||
@Inject
|
||||
private IdentifiedUser.GenericFactory identifiedUserFactory;
|
||||
|
||||
@Inject
|
||||
private ProjectCache projectCache;
|
||||
|
||||
@@ -82,36 +50,11 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
|
||||
@Inject
|
||||
private PushOneCommit.Factory pushFactory;
|
||||
|
||||
private Project.NameKey project;
|
||||
private LabelType codeReview;
|
||||
private TestAccount user;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
user = accounts.user();
|
||||
project = new Project.NameKey("p");
|
||||
SshSession sshSession = new SshSession(server, admin);
|
||||
try {
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
db = reviewDbProvider.open();
|
||||
atrScope.set(atrScope.newContext(reviewDbProvider, sshSession,
|
||||
identifiedUserFactory.create(Providers.of(db), user.getId())));
|
||||
} finally {
|
||||
sshSession.close();
|
||||
}
|
||||
|
||||
ProjectConfig cfg = projectCache.checkedGet(allProjects).getConfig();
|
||||
AccountGroup.UUID anonymousUsers =
|
||||
SystemGroupBackend.getGroup(ANONYMOUS_USERS).getUUID();
|
||||
grant(cfg, Permission.forLabel("Code-Review"), -2, 2, anonymousUsers,
|
||||
"refs/heads/*");
|
||||
grant(cfg, Permission.SUBMIT, anonymousUsers, "refs/heads/*");
|
||||
codeReview = checkNotNull(cfg.getLabelSections().get("Code-Review"));
|
||||
codeReview.setCopyMinScore(false);
|
||||
codeReview.setCopyMaxScore(false);
|
||||
@@ -120,120 +63,69 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
saveProjectConfig(cfg);
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noCopyMinScoreOnRework() throws Exception {
|
||||
String subject = "test commit";
|
||||
String file = "a.txt";
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "first contents");
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
PushOneCommit.Result r = createChange();
|
||||
revision(r).review(ReviewInput.reject());
|
||||
assertApproval(r, -2);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "second contents", r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
r = ammendChange(r.getChangeId());
|
||||
assertApproval(r, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void copyMinScoreOnRework() throws Exception {
|
||||
String subject = "test commit";
|
||||
String file = "a.txt";
|
||||
codeReview.setCopyMinScore(true);
|
||||
saveLabelConfig();
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "first contents");
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
PushOneCommit.Result r = createChange();
|
||||
revision(r).review(ReviewInput.reject());
|
||||
assertApproval(r, -2);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "second contents", r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
r = ammendChange(r.getChangeId());
|
||||
assertApproval(r, -2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noCopyMaxScoreOnRework() throws Exception {
|
||||
String subject = "test commit";
|
||||
String file = "a.txt";
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "first contents");
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
PushOneCommit.Result r = createChange();
|
||||
revision(r).review(ReviewInput.approve());
|
||||
assertApproval(r, 2);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "second contents", r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
r = ammendChange(r.getChangeId());
|
||||
assertApproval(r, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void copyMaxScoreOnRework() throws Exception {
|
||||
String subject = "test commit";
|
||||
String file = "a.txt";
|
||||
codeReview.setCopyMaxScore(true);
|
||||
saveLabelConfig();
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "first contents");
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
PushOneCommit.Result r = createChange();
|
||||
revision(r).review(ReviewInput.approve());
|
||||
assertApproval(r, 2);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "second contents", r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
r = ammendChange(r.getChangeId());
|
||||
assertApproval(r, 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noCopyNonMaxScoreOnRework() throws Exception {
|
||||
String subject = "test commit";
|
||||
String file = "a.txt";
|
||||
codeReview.setCopyMinScore(true);
|
||||
codeReview.setCopyMaxScore(true);
|
||||
saveLabelConfig();
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "first contents");
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
PushOneCommit.Result r = createChange();
|
||||
revision(r).review(ReviewInput.recommend());
|
||||
assertApproval(r, 1);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "second contents", r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
r = ammendChange(r.getChangeId());
|
||||
assertApproval(r, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noCopyNonMinScoreOnRework() throws Exception {
|
||||
String subject = "test commit";
|
||||
String file = "a.txt";
|
||||
codeReview.setCopyMinScore(true);
|
||||
codeReview.setCopyMaxScore(true);
|
||||
saveLabelConfig();
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "first contents");
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
PushOneCommit.Result r = createChange();
|
||||
revision(r).review(ReviewInput.dislike());
|
||||
assertApproval(r, -1);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
subject, file, "second contents", r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
r = ammendChange(r.getChangeId());
|
||||
assertApproval(r, 0);
|
||||
}
|
||||
|
||||
@@ -242,13 +134,13 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
String file = "a.txt";
|
||||
String contents = "contents";
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent(),
|
||||
"first subject", file, contents);
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
revision(r).review(ReviewInput.recommend());
|
||||
assertApproval(r, 1);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
push = pushFactory.create(db, admin.getIdent(),
|
||||
"second subject", file, contents, r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
assertApproval(r, 0);
|
||||
@@ -261,13 +153,13 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
codeReview.setCopyAllScoresIfNoCodeChange(true);
|
||||
saveLabelConfig();
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent(),
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent(),
|
||||
"first subject", file, contents);
|
||||
PushOneCommit.Result r = push.to(git, "refs/for/master");
|
||||
revision(r).review(ReviewInput.recommend());
|
||||
assertApproval(r, 1);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
push = pushFactory.create(db, admin.getIdent(),
|
||||
"second subject", file, contents, r.getChangeId());
|
||||
r = push.to(git, "refs/for/master");
|
||||
assertApproval(r, 1);
|
||||
@@ -279,17 +171,17 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
String file = "a.txt";
|
||||
String contents = "contents";
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent());
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
PushOneCommit.Result r1 = push.to(git, "refs/for/master");
|
||||
merge(r1);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
push = pushFactory.create(db, admin.getIdent(),
|
||||
"non-conflicting", "b.txt", "other contents");
|
||||
PushOneCommit.Result r2 = push.to(git, "refs/for/master");
|
||||
merge(r2);
|
||||
|
||||
git.checkout().setName(r1.getCommit().name()).call();
|
||||
push = pushFactory.create(db, user.getIdent(), subject, file, contents);
|
||||
push = pushFactory.create(db, admin.getIdent(), subject, file, contents);
|
||||
PushOneCommit.Result r3 = push.to(git, "refs/for/master");
|
||||
revision(r3).review(ReviewInput.recommend());
|
||||
assertApproval(r3, 1);
|
||||
@@ -306,17 +198,17 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
codeReview.setCopyAllScoresOnTrivialRebase(true);
|
||||
saveLabelConfig();
|
||||
|
||||
PushOneCommit push = pushFactory.create(db, user.getIdent());
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
PushOneCommit.Result r1 = push.to(git, "refs/for/master");
|
||||
merge(r1);
|
||||
|
||||
push = pushFactory.create(db, user.getIdent(),
|
||||
push = pushFactory.create(db, admin.getIdent(),
|
||||
"non-conflicting", "b.txt", "other contents");
|
||||
PushOneCommit.Result r2 = push.to(git, "refs/for/master");
|
||||
merge(r2);
|
||||
|
||||
git.checkout().setName(r1.getCommit().name()).call();
|
||||
push = pushFactory.create(db, user.getIdent(), subject, file, contents);
|
||||
push = pushFactory.create(db, admin.getIdent(), subject, file, contents);
|
||||
PushOneCommit.Result r3 = push.to(git, "refs/for/master");
|
||||
revision(r3).review(ReviewInput.recommend());
|
||||
assertApproval(r3, 1);
|
||||
@@ -344,7 +236,7 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
private RevisionApi revision(PushOneCommit.Result r) throws Exception {
|
||||
return gApi.changes()
|
||||
.id(r.getChangeId())
|
||||
.revision(r.getCommit().name());
|
||||
.current();
|
||||
}
|
||||
|
||||
private void merge(PushOneCommit.Result r) throws Exception {
|
||||
@@ -367,13 +259,10 @@ public class LabelTypeIT extends AbstractDaemonTest {
|
||||
throws Exception {
|
||||
// Don't use asserts from PushOneCommit so we can test the round-trip
|
||||
// through JSON instead of querying the DB directly.
|
||||
LabelInfo cr = getChange(r).labels.get("Code-Review");
|
||||
ChangeInfo c = get(r.getChangeId(), DETAILED_LABELS);
|
||||
LabelInfo cr = c.labels.get("Code-Review");
|
||||
assertEquals(1, cr.all.size());
|
||||
assertEquals("User", cr.all.get(0).name);
|
||||
assertEquals("Administrator", cr.all.get(0).name);
|
||||
assertEquals(expected, cr.all.get(0).value.intValue());
|
||||
}
|
||||
|
||||
private ChangeInfo getChange(PushOneCommit.Result pr) throws IOException {
|
||||
return getChange(pr.getChangeId(), DETAILED_LABELS);
|
||||
}
|
||||
}
|
||||
|
@@ -33,7 +33,6 @@ import com.google.inject.Inject;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -55,15 +54,12 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private GcAssert gcAssert;
|
||||
|
||||
private SshSession sshSession;
|
||||
private Project.NameKey project1;
|
||||
private Project.NameKey project2;
|
||||
private Project.NameKey project3;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
sshSession = new SshSession(server, admin);
|
||||
|
||||
project1 = new Project.NameKey("p1");
|
||||
createProject(sshSession, project1.get());
|
||||
|
||||
@@ -74,11 +70,6 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
||||
createProject(sshSession, project3.get());
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
sshSession.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
@UseLocalDisk
|
||||
public void testGc() throws JSchException, IOException {
|
||||
@@ -103,7 +94,7 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
||||
@Test
|
||||
public void testGcWithoutCapability_Error() throws IOException, OrmException,
|
||||
JSchException {
|
||||
SshSession s = new SshSession(server, accounts.create("user", "user@example.com", "User"));
|
||||
SshSession s = new SshSession(server, user);
|
||||
s.exec("gerrit gc --all");
|
||||
assertError("Capability runGC is required to access this resource", s.getError());
|
||||
s.close();
|
||||
|
Reference in New Issue
Block a user