diff options
Diffstat (limited to 'src/test/java/com/gitblit/tests/ModelUtilsTest.java')
-rw-r--r-- | src/test/java/com/gitblit/tests/ModelUtilsTest.java | 167 |
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)); + } + +} |