From d00a0ca46fcde3e3e580afea6a548b9c12aeac25 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 11 Jul 2012 17:18:02 -0400
Subject: [PATCH] Update to slf4j 1.6.6 and log4j 1.2.17
---
tests/com/gitblit/tests/FederationTests.java | 142 ++++++++++++++++++++++++++++++++++-------------
1 files changed, 103 insertions(+), 39 deletions(-)
diff --git a/tests/com/gitblit/tests/FederationTests.java b/tests/com/gitblit/tests/FederationTests.java
index e81867b..2c4ffdc 100644
--- a/tests/com/gitblit/tests/FederationTests.java
+++ b/tests/com/gitblit/tests/FederationTests.java
@@ -15,55 +15,55 @@
*/
package com.gitblit.tests;
-import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
-import junit.framework.TestCase;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.Constants.FederationProposalResult;
import com.gitblit.Constants.FederationRequest;
import com.gitblit.Constants.FederationToken;
-import com.gitblit.GitBlitServer;
+import com.gitblit.models.FederationModel;
import com.gitblit.models.FederationProposal;
import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.TeamModel;
+import com.gitblit.models.UserModel;
import com.gitblit.utils.FederationUtils;
import com.gitblit.utils.JsonUtils;
+import com.gitblit.utils.RpcUtils;
-public class FederationTests extends TestCase {
+public class FederationTests {
- int port = 8180;
+ String url = GitBlitSuite.url;
+ String account = GitBlitSuite.account;
+ String password = GitBlitSuite.password;
+ String token = "d7cc58921a80b37e0329a4dae2f9af38bf61ef5c";
- int shutdownPort = 8181;
+ private static final AtomicBoolean started = new AtomicBoolean(false);
- @Override
- protected void setUp() throws Exception {
- // Start a Gitblit instance
- Executors.newSingleThreadExecutor().execute(new Runnable() {
- public void run() {
- GitBlitServer.main("--httpPort", "" + port, "--httpsPort", "0", "--shutdownPort",
- "" + shutdownPort, "--repositoriesFolder",
- "\"" + GitBlitSuite.REPOSITORIES.getAbsolutePath() + "\"", "--userService",
- "distrib/users.conf");
- }
- });
-
- // Wait a few seconds for it to be running
- Thread.sleep(2500);
+ @BeforeClass
+ public static void startGitblit() throws Exception {
+ started.set(GitBlitSuite.startGitblit());
}
- @Override
- protected void tearDown() throws Exception {
- // Stop Gitblit
- GitBlitServer.main("--stop", "--shutdownPort", "" + shutdownPort);
-
- // Wait a few seconds for it to be running
- Thread.sleep(2500);
+ @AfterClass
+ public static void stopGitblit() throws Exception {
+ if (started.get()) {
+ GitBlitSuite.stopGitblit();
+ }
}
+ @Test
public void testProposal() throws Exception {
// create dummy repository data
Map<String, RepositoryModel> repositories = new HashMap<String, RepositoryModel>();
@@ -83,20 +83,84 @@
"testtoken", repositories);
// propose federation
- assertEquals("proposal refused",
- FederationUtils.propose("http://localhost:" + port, proposal),
+ assertEquals("proposal refused", FederationUtils.propose(url, proposal),
FederationProposalResult.NO_PROPOSALS);
}
+ @Test
+ public void testJsonRepositories() throws Exception {
+ String requrl = FederationUtils.asLink(url, token, FederationRequest.PULL_REPOSITORIES);
+ String json = JsonUtils.retrieveJsonString(requrl, null, null);
+ assertNotNull(json);
+ }
+
+ @Test
+ public void testJsonUsers() throws Exception {
+ String requrl = FederationUtils.asLink(url, token, FederationRequest.PULL_USERS);
+ String json = JsonUtils.retrieveJsonString(requrl, null, null);
+ assertNotNull(json);
+ }
+
+ @Test
+ public void testJsonTeams() throws Exception {
+ String requrl = FederationUtils.asLink(url, token, FederationRequest.PULL_TEAMS);
+ String json = JsonUtils.retrieveJsonString(requrl, null, null);
+ assertNotNull(json);
+ }
+
+ private FederationModel getRegistration() {
+ FederationModel model = new FederationModel("localhost");
+ model.url = this.url;
+ model.token = this.token;
+ return model;
+ }
+
+ @Test
public void testPullRepositories() throws Exception {
- try {
- String url = FederationUtils.asLink("http://localhost:" + port, "testtoken",
- FederationRequest.PULL_REPOSITORIES);
- String json = JsonUtils.retrieveJsonString(url, null, null);
- } catch (IOException e) {
- if (!e.getMessage().contains("403")) {
- throw e;
- }
- }
+ Map<String, RepositoryModel> repos = FederationUtils.getRepositories(getRegistration(),
+ false);
+ assertNotNull(repos);
+ assertTrue(repos.size() > 0);
+ }
+
+ @Test
+ public void testPullUsers() throws Exception {
+ List<UserModel> users = FederationUtils.getUsers(getRegistration());
+ assertNotNull(users);
+ // admin is excluded
+ assertEquals(0, users.size());
+
+ UserModel newUser = new UserModel("test");
+ newUser.password = "whocares";
+ assertTrue(RpcUtils.createUser(newUser, url, account, password.toCharArray()));
+
+ TeamModel team = new TeamModel("testteam");
+ team.addUser("test");
+ team.addRepository("helloworld.git");
+ assertTrue(RpcUtils.createTeam(team, url, account, password.toCharArray()));
+
+ users = FederationUtils.getUsers(getRegistration());
+ assertNotNull(users);
+ assertEquals(1, users.size());
+
+ newUser = users.get(0);
+ assertTrue(newUser.isTeamMember("testteam"));
+
+ assertTrue(RpcUtils.deleteUser(newUser, url, account, password.toCharArray()));
+ assertTrue(RpcUtils.deleteTeam(team, url, account, password.toCharArray()));
+ }
+
+ @Test
+ public void testPullTeams() throws Exception {
+ List<TeamModel> teams = FederationUtils.getTeams(getRegistration());
+ assertNotNull(teams);
+ assertTrue(teams.size() > 0);
+ }
+
+ @Test
+ public void testPullScripts() throws Exception {
+ Map<String, String> scripts = FederationUtils.getScripts(getRegistration());
+ assertNotNull(scripts);
+ assertTrue(scripts.keySet().contains("sendmail"));
}
}
--
Gitblit v1.9.1