From fddab0300aaec0741f8b2de86952c675f82948dd Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 04 Dec 2012 11:20:22 -0500 Subject: [PATCH] Fixed regression in sendmail-html.groovy --- 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..c8f686a 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.addRepositoryPermission("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