diff options
Diffstat (limited to 'src/test')
13 files changed, 139 insertions, 28 deletions
diff --git a/src/test/config/test-users.conf b/src/test/config/test-users.conf index 1d01f846..4361410c 100644 --- a/src/test/config/test-users.conf +++ b/src/test/config/test-users.conf @@ -2,13 +2,9 @@ password = admin cookie = dd94709528bb1c83d08f3088d4043f4742891f4f accountType = LOCAL + emailMeOnMyTicketChanges = true role = "#admin" role = "#notfederated" -[user "sampleuser"] - password = sampleuser - cookie = 6e07ed42149fc166206319faffdfba2e2ec82e43 - accountType = LOCAL - role = "#none" [team "admins"] role = "#none" accountType = LOCAL diff --git a/src/test/java/com/gitblit/tests/AuthenticationManagerTest.java b/src/test/java/com/gitblit/tests/AuthenticationManagerTest.java index 84a2b749..f1d2711e 100644 --- a/src/test/java/com/gitblit/tests/AuthenticationManagerTest.java +++ b/src/test/java/com/gitblit/tests/AuthenticationManagerTest.java @@ -43,7 +43,7 @@ public class AuthenticationManagerTest extends GitblitUnitTest { IAuthenticationManager newAuthenticationManager() { RuntimeManager runtime = new RuntimeManager(getSettings(), GitBlitSuite.BASEFOLDER).start(); - users = new UserManager(runtime).start(); + users = new UserManager(runtime, null).start(); AuthenticationManager auth = new AuthenticationManager(runtime, users).start(); return auth; } diff --git a/src/test/java/com/gitblit/tests/BranchTicketServiceTest.java b/src/test/java/com/gitblit/tests/BranchTicketServiceTest.java index 6119b8db..cc404abf 100644 --- a/src/test/java/com/gitblit/tests/BranchTicketServiceTest.java +++ b/src/test/java/com/gitblit/tests/BranchTicketServiceTest.java @@ -54,8 +54,8 @@ public class BranchTicketServiceTest extends TicketServiceTest { IRuntimeManager runtimeManager = new RuntimeManager(settings).start(); IPluginManager pluginManager = new PluginManager(runtimeManager).start(); INotificationManager notificationManager = new NotificationManager(settings).start(); - IUserManager userManager = new UserManager(runtimeManager).start(); - IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, userManager).start(); + IUserManager userManager = new UserManager(runtimeManager, pluginManager).start(); + IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, pluginManager, userManager).start(); BranchTicketService service = new BranchTicketService( runtimeManager, diff --git a/src/test/java/com/gitblit/tests/FileTicketServiceTest.java b/src/test/java/com/gitblit/tests/FileTicketServiceTest.java index 20cde26b..6ede042a 100644 --- a/src/test/java/com/gitblit/tests/FileTicketServiceTest.java +++ b/src/test/java/com/gitblit/tests/FileTicketServiceTest.java @@ -53,8 +53,8 @@ public class FileTicketServiceTest extends TicketServiceTest { IRuntimeManager runtimeManager = new RuntimeManager(settings).start(); IPluginManager pluginManager = new PluginManager(runtimeManager).start(); INotificationManager notificationManager = new NotificationManager(settings).start(); - IUserManager userManager = new UserManager(runtimeManager).start(); - IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, userManager).start(); + IUserManager userManager = new UserManager(runtimeManager, pluginManager).start(); + IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, pluginManager, userManager).start(); FileTicketService service = new FileTicketService( runtimeManager, diff --git a/src/test/java/com/gitblit/tests/HtpasswdAuthenticationTest.java b/src/test/java/com/gitblit/tests/HtpasswdAuthenticationTest.java index 4e1c3ac1..f4e24d4e 100644 --- a/src/test/java/com/gitblit/tests/HtpasswdAuthenticationTest.java +++ b/src/test/java/com/gitblit/tests/HtpasswdAuthenticationTest.java @@ -75,15 +75,15 @@ public class HtpasswdAuthenticationTest extends GitblitUnitTest { private HtpasswdAuthProvider newHtpasswdAuthentication(IStoredSettings settings) { RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start(); - UserManager users = new UserManager(runtime).start(); + UserManager users = new UserManager(runtime, null).start(); HtpasswdAuthProvider htpasswd = new HtpasswdAuthProvider(); htpasswd.setup(runtime, users); return htpasswd; } - + private AuthenticationManager newAuthenticationManager(IStoredSettings settings) { RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start(); - UserManager users = new UserManager(runtime).start(); + UserManager users = new UserManager(runtime, null).start(); HtpasswdAuthProvider htpasswd = new HtpasswdAuthProvider(); htpasswd.setup(runtime, users); AuthenticationManager auth = new AuthenticationManager(runtime, users); @@ -191,7 +191,7 @@ public class HtpasswdAuthenticationTest extends GitblitUnitTest { assertEquals("leading", user.username); } - + @Test public void testAuthenticationManager() { diff --git a/src/test/java/com/gitblit/tests/LdapAuthenticationTest.java b/src/test/java/com/gitblit/tests/LdapAuthenticationTest.java index 21063d58..646f7e9f 100644 --- a/src/test/java/com/gitblit/tests/LdapAuthenticationTest.java +++ b/src/test/java/com/gitblit/tests/LdapAuthenticationTest.java @@ -68,7 +68,7 @@ public class LdapAuthenticationTest extends GitblitUnitTest { private static InMemoryDirectoryServer ds; private IUserManager userManager; - + private AuthenticationManager auth; private MemorySettings settings; @@ -97,12 +97,12 @@ public class LdapAuthenticationTest extends GitblitUnitTest { private LdapAuthProvider newLdapAuthentication(IStoredSettings settings) { RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start(); - userManager = new UserManager(runtime).start(); + userManager = new UserManager(runtime, null).start(); LdapAuthProvider ldap = new LdapAuthProvider(); ldap.setup(runtime, userManager); return ldap; } - + private AuthenticationManager newAuthenticationManager(IStoredSettings settings) { RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start(); AuthenticationManager auth = new AuthenticationManager(runtime, userManager); @@ -258,7 +258,7 @@ public class LdapAuthenticationTest extends GitblitUnitTest { assertNull(userThreeModel.getTeam("git_admins")); assertTrue(userThreeModel.canAdmin); } - + @Test public void testBindWithUser() { settings.put(Keys.realm.ldap.bindpattern, "CN=${username},OU=US,OU=Users,OU=UserControl,OU=MyOrganization,DC=MyDomain"); @@ -267,7 +267,7 @@ public class LdapAuthenticationTest extends GitblitUnitTest { UserModel userOneModel = auth.authenticate("UserOne", "userOnePassword".toCharArray()); assertNotNull(userOneModel); - + UserModel userOneModelFailedAuth = auth.authenticate("UserOne", "userTwoPassword".toCharArray()); assertNull(userOneModelFailedAuth); } diff --git a/src/test/java/com/gitblit/tests/LuceneExecutorTest.java b/src/test/java/com/gitblit/tests/LuceneExecutorTest.java index 319c09c1..5c319e65 100644 --- a/src/test/java/com/gitblit/tests/LuceneExecutorTest.java +++ b/src/test/java/com/gitblit/tests/LuceneExecutorTest.java @@ -49,8 +49,8 @@ public class LuceneExecutorTest extends GitblitUnitTest { MemorySettings settings = new MemorySettings();
settings.put(Keys.git.repositoriesFolder, GitBlitSuite.REPOSITORIES);
RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start();
- UserManager users = new UserManager(runtime).start();
- RepositoryManager repos = new RepositoryManager(runtime, users);
+ UserManager users = new UserManager(runtime, null).start();
+ RepositoryManager repos = new RepositoryManager(runtime, null, users);
return new LuceneService(settings, repos);
}
diff --git a/src/test/java/com/gitblit/tests/RedisTicketServiceTest.java b/src/test/java/com/gitblit/tests/RedisTicketServiceTest.java index 94391a15..b782b449 100644 --- a/src/test/java/com/gitblit/tests/RedisTicketServiceTest.java +++ b/src/test/java/com/gitblit/tests/RedisTicketServiceTest.java @@ -61,8 +61,8 @@ public class RedisTicketServiceTest extends TicketServiceTest { IRuntimeManager runtimeManager = new RuntimeManager(settings).start(); IPluginManager pluginManager = new PluginManager(runtimeManager).start(); INotificationManager notificationManager = new NotificationManager(settings).start(); - IUserManager userManager = new UserManager(runtimeManager).start(); - IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, userManager).start(); + IUserManager userManager = new UserManager(runtimeManager, pluginManager).start(); + IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, pluginManager, userManager).start(); RedisTicketService service = new RedisTicketService( runtimeManager, diff --git a/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java b/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java index 6ede8313..3b6b7bba 100644 --- a/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java +++ b/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java @@ -26,7 +26,7 @@ public class RedmineAuthenticationTest extends GitblitUnitTest { RedmineAuthProvider newRedmineAuthentication(IStoredSettings settings) { RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start(); - UserManager users = new UserManager(runtime).start(); + UserManager users = new UserManager(runtime, null).start(); RedmineAuthProvider redmine = new RedmineAuthProvider(); redmine.setup(runtime, users); return redmine; @@ -35,10 +35,10 @@ public class RedmineAuthenticationTest extends GitblitUnitTest { RedmineAuthProvider newRedmineAuthentication() { return newRedmineAuthentication(getSettings()); } - + AuthenticationManager newAuthenticationManager() { RuntimeManager runtime = new RuntimeManager(getSettings(), GitBlitSuite.BASEFOLDER).start(); - UserManager users = new UserManager(runtime).start(); + UserManager users = new UserManager(runtime, null).start(); RedmineAuthProvider redmine = new RedmineAuthProvider(); redmine.setup(runtime, users); redmine.setTestingCurrentUserAsJson(JSON); diff --git a/src/test/java/com/gitblit/tests/RpcTests.java b/src/test/java/com/gitblit/tests/RpcTests.java index ced1a130..51b4671b 100644 --- a/src/test/java/com/gitblit/tests/RpcTests.java +++ b/src/test/java/com/gitblit/tests/RpcTests.java @@ -397,4 +397,67 @@ public class RpcTests extends GitblitUnitTest { assertNotNull(branches);
assertTrue(branches.size() > 0);
}
+
+ @Test
+ public void testFork() throws Exception {
+ // test forking by an administrator
+ // admins are all-powerful and can fork the unforakable :)
+ testFork(account, password, true, true);
+ testFork(account, password, false, true);
+
+ // test forking by a permitted normal user
+ UserModel forkUser = new UserModel("forkuser");
+ forkUser.password = forkUser.username;
+ forkUser.canFork = true;
+ RpcUtils.deleteUser(forkUser, url, account, password.toCharArray());
+ RpcUtils.createUser(forkUser, url, account, password.toCharArray());
+ testFork(forkUser.username, forkUser.password, true, true);
+ testFork(forkUser.username, forkUser.password, false, false);
+ RpcUtils.deleteUser(forkUser, url, account, password.toCharArray());
+
+ // test forking by a non-permitted normal user
+ UserModel noForkUser = new UserModel("noforkuser");
+ noForkUser.password = noForkUser.username;
+ noForkUser.canFork = false;
+ RpcUtils.deleteUser(noForkUser, url, account, password.toCharArray());
+ RpcUtils.createUser(noForkUser, url, account, password.toCharArray());
+ testFork(forkUser.username, forkUser.password, true, false);
+ testFork(forkUser.username, forkUser.password, false, false);
+ RpcUtils.deleteUser(noForkUser, url, account, password.toCharArray());
+ }
+
+ private void testFork(String forkAcct, String forkAcctPassword, boolean allowForks, boolean expectSuccess) throws Exception {
+ // test does not exist
+ RepositoryModel dne = new RepositoryModel();
+ dne.name = "doesNotExist.git";
+ assertFalse(String.format("Successfully forked %s!", dne.name),
+ RpcUtils.forkRepository(dne, url, forkAcct, forkAcctPassword.toCharArray()));
+
+ // delete any previous fork
+ RepositoryModel fork = findRepository(String.format("~%s/helloworld.git", forkAcct));
+ if (fork != null) {
+ RpcUtils.deleteRepository(fork, url, account, password.toCharArray());
+ }
+
+ // update the origin to allow forks or not
+ RepositoryModel origin = findRepository("helloworld.git");
+ origin.allowForks = allowForks;
+ RpcUtils.updateRepository(origin.name, origin, url, account, password.toCharArray());
+
+ // fork the repository
+ if (expectSuccess) {
+ assertTrue(String.format("Failed to fork %s!", origin.name),
+ RpcUtils.forkRepository(origin, url, forkAcct, forkAcctPassword.toCharArray()));
+ } else {
+ assertFalse(String.format("Successfully forked %s!", origin.name),
+ RpcUtils.forkRepository(origin, url, forkAcct, forkAcctPassword.toCharArray()));
+ }
+
+ // attempt another fork
+ assertFalse(String.format("Successfully forked %s!", origin.name),
+ RpcUtils.forkRepository(origin, url, forkAcct, forkAcctPassword.toCharArray()));
+
+ // delete the fork repository
+ RpcUtils.deleteRepository(fork, url, account, password.toCharArray());
+ }
}
diff --git a/src/test/java/com/gitblit/tests/SyndicationUtilsTest.java b/src/test/java/com/gitblit/tests/SyndicationUtilsTest.java index d206bbdb..b4bb044f 100644 --- a/src/test/java/com/gitblit/tests/SyndicationUtilsTest.java +++ b/src/test/java/com/gitblit/tests/SyndicationUtilsTest.java @@ -21,7 +21,10 @@ import java.util.Date; import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
import com.gitblit.Constants.SearchType;
@@ -30,6 +33,20 @@ import com.gitblit.utils.SyndicationUtils; public class SyndicationUtilsTest extends GitblitUnitTest {
+ private static final AtomicBoolean started = new AtomicBoolean(false);
+
+ @BeforeClass
+ public static void startGitblit() throws Exception {
+ started.set(GitBlitSuite.startGitblit());
+ }
+
+ @AfterClass
+ public static void stopGitblit() throws Exception {
+ if (started.get()) {
+ GitBlitSuite.stopGitblit();
+ }
+ }
+
@Test
public void testSyndication() throws Exception {
List<FeedEntryModel> entries = new ArrayList<FeedEntryModel>();
@@ -60,7 +77,7 @@ public class SyndicationUtilsTest extends GitblitUnitTest { }
@Test
- public void testFeedRead() throws Exception {
+ public void testFeedReadCommits() throws Exception {
Set<String> links = new HashSet<String>();
for (int i = 0; i < 2; i++) {
List<FeedEntryModel> feed = SyndicationUtils.readFeed(GitBlitSuite.url, "ticgit.git",
@@ -77,6 +94,23 @@ public class SyndicationUtilsTest extends GitblitUnitTest { }
@Test
+ public void testFeedReadTags() throws Exception {
+ Set<String> links = new HashSet<String>();
+ for (int i = 0; i < 2; i++) {
+ List<FeedEntryModel> feed = SyndicationUtils.readTags(GitBlitSuite.url, "test/gitective.git",
+ 5, i, GitBlitSuite.account, GitBlitSuite.password.toCharArray());
+ assertTrue(feed != null);
+ assertTrue(feed.size() > 0);
+ assertEquals(5, feed.size());
+ for (FeedEntryModel entry : feed) {
+ links.add(entry.link);
+ }
+ }
+ // confirm we have 10 unique tags
+ assertEquals("Feed pagination failed", 10, links.size());
+ }
+
+ @Test
public void testSearchFeedRead() throws Exception {
List<FeedEntryModel> feed = SyndicationUtils
.readSearchFeed(GitBlitSuite.url, "ticgit.git", null, "test", null, 5, 0,
diff --git a/src/test/java/com/gitblit/tests/TicketServiceTest.java b/src/test/java/com/gitblit/tests/TicketServiceTest.java index d91ce533..1676e341 100644 --- a/src/test/java/com/gitblit/tests/TicketServiceTest.java +++ b/src/test/java/com/gitblit/tests/TicketServiceTest.java @@ -95,7 +95,7 @@ public abstract class TicketServiceTest extends GitblitUnitTest { // query non-existent ticket
TicketModel nonExistent = service.getTicket(getRepository(), 0);
assertNull(nonExistent);
-
+
// create and insert a ticket
Change c1 = newChange("testCreation() " + Long.toHexString(System.currentTimeMillis()));
TicketModel ticket = service.createTicket(getRepository(), c1);
@@ -205,6 +205,9 @@ public abstract class TicketServiceTest extends GitblitUnitTest { assertEquals(1, results.size());
assertTrue(results.get(0).title.startsWith("testUpdates"));
+ // check the ids
+ assertEquals("[1, 2]", service.getIds(getRepository()).toString());
+
// delete all tickets
for (TicketModel aTicket : allTickets) {
assertTrue(service.deleteTicket(getRepository(), aTicket.number, "D"));
diff --git a/src/test/java/com/gitblit/tests/mock/MockRuntimeManager.java b/src/test/java/com/gitblit/tests/mock/MockRuntimeManager.java index 6e56a873..54be539f 100644 --- a/src/test/java/com/gitblit/tests/mock/MockRuntimeManager.java +++ b/src/test/java/com/gitblit/tests/mock/MockRuntimeManager.java @@ -82,6 +82,21 @@ public class MockRuntimeManager implements IRuntimeManager { } @Override + public boolean isServingHTTP() { + return true; + } + + @Override + public boolean isServingGIT() { + return true; + } + + @Override + public boolean isServingSSH() { + return true; + } + + @Override public boolean isDebugMode() { return true; } |