Add acceptance tests for pushing for review via HTTP
Parameterize the acceptance tests for pushing for review so that pushing over SSH and pushing over HTTP is tested. Upgrade JUnit to 4.11 because only with this version of JUnit it's possible to assign a name for the parameterization of tests. Change-Id: If9f0c33f09b6ae949fb89ec56af1f7e2fe066ce4 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
@@ -50,4 +50,14 @@ public class TestAccount {
|
||||
public PersonIdent getIdent() {
|
||||
return new PersonIdent(username, email);
|
||||
}
|
||||
|
||||
public String getHttpUrl() {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append("http://");
|
||||
b.append(username);
|
||||
b.append(":");
|
||||
b.append(httpPassword);
|
||||
b.append("@localhost:8080");
|
||||
return b.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.acceptance.git.ssh;
|
||||
package com.google.gerrit.acceptance.git;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.gerrit.acceptance.SshSession;
|
||||
@@ -12,14 +12,14 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.acceptance.git.ssh;
|
||||
package com.google.gerrit.acceptance.git;
|
||||
|
||||
import static com.google.gerrit.acceptance.git.ssh.GitUtil.add;
|
||||
import static com.google.gerrit.acceptance.git.ssh.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.git.ssh.GitUtil.createCommit;
|
||||
import static com.google.gerrit.acceptance.git.ssh.GitUtil.createProject;
|
||||
import static com.google.gerrit.acceptance.git.ssh.GitUtil.initSsh;
|
||||
import static com.google.gerrit.acceptance.git.ssh.GitUtil.pushHead;
|
||||
import static com.google.gerrit.acceptance.git.GitUtil.add;
|
||||
import static com.google.gerrit.acceptance.git.GitUtil.cloneProject;
|
||||
import static com.google.gerrit.acceptance.git.GitUtil.createCommit;
|
||||
import static com.google.gerrit.acceptance.git.GitUtil.createProject;
|
||||
import static com.google.gerrit.acceptance.git.GitUtil.initSsh;
|
||||
import static com.google.gerrit.acceptance.git.GitUtil.pushHead;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -51,13 +51,31 @@ import org.eclipse.jgit.transport.RemoteRefUpdate.Status;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
import org.junit.runners.Parameterized.Parameters;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@RunWith(Parameterized.class)
|
||||
public class PushForReviewIT extends AbstractDaemonTest {
|
||||
|
||||
private enum Protocol {
|
||||
SSH, HTTP
|
||||
}
|
||||
|
||||
@Parameters(name="{0}")
|
||||
public static List<Object[]> getParam() {
|
||||
List<Object[]> params = Lists.newArrayList();
|
||||
for(Protocol p : Protocol.values()) {
|
||||
params.add(new Object[] {p});
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
@Inject
|
||||
private AccountCreator accounts;
|
||||
|
||||
@@ -65,29 +83,44 @@ public class PushForReviewIT extends AbstractDaemonTest {
|
||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
||||
|
||||
private TestAccount admin;
|
||||
private SshSession sshSession;
|
||||
private Project.NameKey project;
|
||||
private Git git;
|
||||
private ReviewDb db;
|
||||
private Protocol protocol;
|
||||
|
||||
public PushForReviewIT(Protocol p) {
|
||||
this.protocol = p;
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
admin =
|
||||
accounts.create("admin", "admin@example.com", "Administrator",
|
||||
"Administrators");
|
||||
sshSession = new SshSession(admin);
|
||||
|
||||
project = new Project.NameKey("p");
|
||||
initSsh(admin);
|
||||
SshSession sshSession = new SshSession(admin);
|
||||
createProject(sshSession, project.get());
|
||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
||||
String url;
|
||||
switch (protocol) {
|
||||
case SSH:
|
||||
url = sshSession.getUrl();
|
||||
break;
|
||||
case HTTP:
|
||||
url = admin.getHttpUrl();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("unexpected protocol: " + protocol);
|
||||
}
|
||||
git = cloneProject(url + "/" + project.get());
|
||||
sshSession.close();
|
||||
|
||||
db = reviewDbProvider.open();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
sshSession.close();
|
||||
db.close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user