summaryrefslogtreecommitdiffstats
path: root/src/test/java/com/gitblit/tests/ModelUtilsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/gitblit/tests/ModelUtilsTest.java')
-rw-r--r--src/test/java/com/gitblit/tests/ModelUtilsTest.java167
1 files changed, 167 insertions, 0 deletions
diff --git a/src/test/java/com/gitblit/tests/ModelUtilsTest.java b/src/test/java/com/gitblit/tests/ModelUtilsTest.java
new file mode 100644
index 00000000..988f681c
--- /dev/null
+++ b/src/test/java/com/gitblit/tests/ModelUtilsTest.java
@@ -0,0 +1,167 @@
+package com.gitblit.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.After;
+import org.junit.Test;
+
+import com.gitblit.Keys;
+import com.gitblit.tests.mock.MemorySettings;
+import com.gitblit.utils.ModelUtils;
+
+public class ModelUtilsTest {
+
+ private static final String DEFAULT_USER_REPO_PREFIX = "~";
+
+ private static final Map<String, Object> backingMap = new HashMap<String, Object>();
+ private static final MemorySettings ms = new MemorySettings(backingMap);
+
+
+ private static void setPrefix(String prefix)
+ {
+ backingMap.put(Keys.git.userRepositoryPrefix, prefix);
+ }
+
+
+ private static void setRepoPrefix(String prefix)
+ {
+ backingMap.put(Keys.git.userRepositoryPrefix, prefix);
+ ModelUtils.setUserRepoPrefix(ms);
+ }
+
+
+ @After
+ public void resetPrefix()
+ {
+ setRepoPrefix(DEFAULT_USER_REPO_PREFIX);
+ }
+
+
+ @Test
+ public void testGetUserRepoPrefix()
+ {
+ assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
+ }
+
+
+ @Test
+ public void testSetUserRepoPrefix()
+ {
+
+ assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
+
+ setPrefix("@");
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals("@", ModelUtils.getUserRepoPrefix());
+
+ backingMap.remove(Keys.git.userRepositoryPrefix);
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
+
+ setPrefix("user/");
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals("user/", ModelUtils.getUserRepoPrefix());
+
+ setPrefix("");
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
+
+ setPrefix("u_");
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals("u_", ModelUtils.getUserRepoPrefix());
+
+ ModelUtils.setUserRepoPrefix(null);
+ assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
+
+ setPrefix("/somedir/otherdir/");
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals("somedir/otherdir/", ModelUtils.getUserRepoPrefix());
+
+ setPrefix(DEFAULT_USER_REPO_PREFIX);
+ ModelUtils.setUserRepoPrefix(ms);
+ assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
+ }
+
+
+ @Test
+ public void testGetPersonalPath()
+ {
+ String username = "rob";
+ assertEquals(DEFAULT_USER_REPO_PREFIX+username.toLowerCase(), ModelUtils.getPersonalPath(username));
+
+ username = "James";
+ assertEquals(DEFAULT_USER_REPO_PREFIX+username.toLowerCase(), ModelUtils.getPersonalPath(username));
+
+ setRepoPrefix("usr/");
+ username = "noMan";
+ assertEquals("usr/"+username.toLowerCase(), ModelUtils.getPersonalPath(username));
+ }
+
+
+ @Test
+ public void testIsPersonalRepository()
+ {
+ String reponame = DEFAULT_USER_REPO_PREFIX + "one";
+ assertTrue(ModelUtils.isPersonalRepository(reponame));
+
+ reponame = "none";
+ assertFalse(ModelUtils.isPersonalRepository(reponame));
+
+ setRepoPrefix("@@");
+ reponame = "@@two";
+ assertTrue(ModelUtils.isPersonalRepository(reponame));
+
+ setRepoPrefix("users/");
+ reponame = "users/three";
+ assertTrue(ModelUtils.isPersonalRepository(reponame));
+
+ reponame = "project/four";
+ assertFalse(ModelUtils.isPersonalRepository(reponame));
+ }
+
+
+ @Test
+ public void testIsUsersPersonalRepository()
+ {
+ String reponame = DEFAULT_USER_REPO_PREFIX + "lynn";
+ assertTrue(ModelUtils.isUsersPersonalRepository("lynn", reponame));
+
+ reponame = "prjB";
+ assertFalse(ModelUtils.isUsersPersonalRepository("lynn", reponame));
+
+ setRepoPrefix("@@");
+ reponame = "@@newton";
+ assertTrue(ModelUtils.isUsersPersonalRepository("newton", reponame));
+ assertFalse(ModelUtils.isUsersPersonalRepository("hertz", reponame));
+
+ setRepoPrefix("users/");
+ reponame = "users/fee";
+ assertTrue(ModelUtils.isUsersPersonalRepository("fee", reponame));
+ assertFalse(ModelUtils.isUsersPersonalRepository("gnome", reponame));
+
+ reponame = "project/nsbl";
+ assertFalse(ModelUtils.isUsersPersonalRepository("fee", reponame));
+ }
+
+
+ @Test
+ public void testGetUserNameFromRepoPath()
+ {
+ String reponame = DEFAULT_USER_REPO_PREFIX + "lynn";
+ assertEquals("lynn", ModelUtils.getUserNameFromRepoPath(reponame));
+
+ setRepoPrefix("@@");
+ reponame = "@@newton";
+ assertEquals("newton", ModelUtils.getUserNameFromRepoPath(reponame));
+
+ setRepoPrefix("users/");
+ reponame = "users/fee";
+ assertEquals("fee", ModelUtils.getUserNameFromRepoPath(reponame));
+ }
+
+}