From 27ae9095639bb228a1b7ff86a3ebe4264abf05be Mon Sep 17 00:00:00 2001
From: mschaefers <mschaefers@scoop-gmbh.de>
Date: Thu, 29 Nov 2012 12:33:09 -0500
Subject: [PATCH] feature: when using LdapUserService one can configure Gitblit to fetch all users from ldap that can possibly login. This allows to see newly generated LDAP users instantly in Gitblit. By now an LDAP user had to log in once to appear in GitBlit.
---
tests/com/gitblit/tests/GitBlitTest.java | 99 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 72 insertions(+), 27 deletions(-)
diff --git a/tests/com/gitblit/tests/GitBlitTest.java b/tests/com/gitblit/tests/GitBlitTest.java
index 6d36d49..1c9bbd0 100644
--- a/tests/com/gitblit/tests/GitBlitTest.java
+++ b/tests/com/gitblit/tests/GitBlitTest.java
@@ -15,9 +15,14 @@
*/
package com.gitblit.tests;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import java.util.List;
-import junit.framework.TestCase;
+import org.junit.Test;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.FileSettings;
@@ -25,8 +30,9 @@
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
-public class GitBlitTest extends TestCase {
+public class GitBlitTest {
+ @Test
public void testRepositoryModel() throws Exception {
List<String> repositories = GitBlit.self().getRepositoryList();
assertTrue("Repository list is empty!", repositories.size() > 0);
@@ -37,30 +43,65 @@
RepositoryModel model = GitBlit.self().getRepositoryModel(
GitBlitSuite.getHelloworldRepository().getDirectory().getName());
assertTrue("Helloworld model is null!", model != null);
- assertTrue(model.toString().equals(
- GitBlitSuite.getHelloworldRepository().getDirectory().getName()));
+ assertEquals(GitBlitSuite.getHelloworldRepository().getDirectory().getName(), model.name);
assertTrue(GitBlit.self().calculateSize(model) > 22000L);
}
+ @Test
public void testUserModel() throws Exception {
List<String> users = GitBlit.self().getAllUsernames();
assertTrue("No users found!", users.size() > 0);
assertTrue("Admin not found", users.contains("admin"));
- UserModel model = GitBlit.self().getUserModel("admin");
- assertTrue(model.toString().equals("admin"));
- assertTrue("Admin missing #admin role!", model.canAdmin);
- model.canAdmin = false;
- assertFalse("Admin should not have #admin!", model.canAdmin);
+ UserModel user = GitBlit.self().getUserModel("admin");
+ assertEquals("admin", user.toString());
+ assertTrue("Admin missing #admin role!", user.canAdmin);
+ user.canAdmin = false;
+ assertFalse("Admin should not have #admin!", user.canAdmin);
String repository = GitBlitSuite.getHelloworldRepository().getDirectory().getName();
- RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(model, repository);
- assertFalse("Admin can still access repository!", model.canAccessRepository(repositoryModel));
- model.addRepository(repository);
- assertTrue("Admin can't access repository!", model.canAccessRepository(repositoryModel));
- assertEquals(GitBlit.self().getRepositoryModel(model, "pretend"), null);
- assertNotNull(GitBlit.self().getRepositoryModel(model, repository));
- assertTrue(GitBlit.self().getRepositoryModels(model).size() > 0);
+ RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(repository);
+ repositoryModel.accessRestriction = AccessRestrictionType.VIEW;
+ assertFalse("Admin can still access repository!",
+ user.canView(repositoryModel));
+ user.addRepositoryPermission(repository);
+ assertTrue("Admin can't access repository!", user.canView(repositoryModel));
+ assertEquals(GitBlit.self().getRepositoryModel(user, "pretend"), null);
+ assertNotNull(GitBlit.self().getRepositoryModel(user, repository));
+ assertTrue(GitBlit.self().getRepositoryModels(user).size() > 0);
+ }
+
+ @Test
+ public void testUserModelVerification() throws Exception {
+ UserModel user = new UserModel("james");
+ user.displayName = "James Moger";
+
+ assertTrue(user.is("James", null));
+ assertTrue(user.is("James", ""));
+ assertTrue(user.is("JaMeS", "anything"));
+
+ assertTrue(user.is("james moger", null));
+ assertTrue(user.is("james moger", ""));
+ assertTrue(user.is("james moger", "anything"));
+
+ assertFalse(user.is("joe", null));
+ assertFalse(user.is("joe", ""));
+ assertFalse(user.is("joe", "anything"));
+
+ // specify email address which results in address verification
+ user.emailAddress = "something";
+
+ assertFalse(user.is("James", null));
+ assertFalse(user.is("James", ""));
+ assertFalse(user.is("JaMeS", "anything"));
+
+ assertFalse(user.is("james moger", null));
+ assertFalse(user.is("james moger", ""));
+ assertFalse(user.is("james moger", "anything"));
+
+ assertTrue(user.is("JaMeS", user.emailAddress));
+ assertTrue(user.is("JaMeS mOgEr", user.emailAddress));
}
+ @Test
public void testAccessRestrictionTypes() throws Exception {
assertTrue(AccessRestrictionType.PUSH.exceeds(AccessRestrictionType.NONE));
assertTrue(AccessRestrictionType.CLONE.exceeds(AccessRestrictionType.PUSH));
@@ -82,22 +123,23 @@
assertTrue(AccessRestrictionType.CLONE.toString().equals("CLONE"));
assertTrue(AccessRestrictionType.VIEW.toString().equals("VIEW"));
- assertTrue(AccessRestrictionType.fromName("none").equals(AccessRestrictionType.NONE));
- assertTrue(AccessRestrictionType.fromName("push").equals(AccessRestrictionType.PUSH));
- assertTrue(AccessRestrictionType.fromName("clone").equals(AccessRestrictionType.CLONE));
- assertTrue(AccessRestrictionType.fromName("view").equals(AccessRestrictionType.VIEW));
+ assertEquals(AccessRestrictionType.NONE, AccessRestrictionType.fromName("none"));
+ assertEquals(AccessRestrictionType.PUSH, AccessRestrictionType.fromName("push"));
+ assertEquals(AccessRestrictionType.CLONE, AccessRestrictionType.fromName("clone"));
+ assertEquals(AccessRestrictionType.VIEW, AccessRestrictionType.fromName("view"));
}
+ @Test
public void testFileSettings() throws Exception {
FileSettings settings = new FileSettings("distrib/gitblit.properties");
- assertTrue(settings.getBoolean("missing", true));
- assertTrue(settings.getString("missing", "default").equals("default"));
- assertTrue(settings.getInteger("missing", 10) == 10);
- assertTrue(settings.getInteger("realm.realmFile", 5) == 5);
+ assertEquals(true, settings.getBoolean("missing", true));
+ assertEquals("default", settings.getString("missing", "default"));
+ assertEquals(10, settings.getInteger("missing", 10));
+ assertEquals(5, settings.getInteger("realm.realmFile", 5));
assertTrue(settings.getBoolean("git.enableGitServlet", false));
- assertTrue(settings.getString("realm.userService", null).equals("users.conf"));
- assertTrue(settings.getInteger("realm.minPasswordLength", 0) == 5);
+ assertEquals("users.conf", settings.getString("realm.userService", null));
+ assertEquals(5, settings.getInteger("realm.minPasswordLength", 0));
List<String> mdExtensions = settings.getStrings("web.markdownExtensions");
assertTrue(mdExtensions.size() > 0);
assertTrue(mdExtensions.contains("md"));
@@ -109,6 +151,7 @@
assertTrue(settings.getChar("web.forwardSlashCharacter", ' ') == '/');
}
+ @Test
public void testGitblitSettings() throws Exception {
// These are already tested by above test method.
assertTrue(GitBlit.getBoolean("missing", true));
@@ -117,7 +160,7 @@
assertEquals(5, GitBlit.getInteger("realm.userService", 5));
assertTrue(GitBlit.getBoolean("git.enableGitServlet", false));
- assertEquals("distrib/users.conf", GitBlit.getString("realm.userService", null));
+ assertEquals("test-users.conf", GitBlit.getString("realm.userService", null));
assertEquals(5, GitBlit.getInteger("realm.minPasswordLength", 0));
List<String> mdExtensions = GitBlit.getStrings("web.markdownExtensions");
assertTrue(mdExtensions.size() > 0);
@@ -131,10 +174,12 @@
assertFalse(GitBlit.isDebugMode());
}
+ @Test
public void testAuthentication() throws Exception {
assertTrue(GitBlit.self().authenticate("admin", "admin".toCharArray()) != null);
}
+ @Test
public void testRepositories() throws Exception {
assertTrue(GitBlit.self().getRepository("missing") == null);
assertTrue(GitBlit.self().getRepositoryModel("missing") == null);
--
Gitblit v1.9.1