blob: dfccc1463cfd56776141cce39e3771e5ff6e0027 [file] [log] [blame]
package com.gitblit.tests;
import org.junit.After;
import org.junit.Test;
import com.gitblit.Constants;
import com.gitblit.models.UserModel;
import com.gitblit.utils.ModelUtils;
public class ModelUtilsTest extends GitblitUnitTest {
@After
public void resetPrefix()
{
ModelUtils.setUserRepoPrefix(null);
}
@Test
public void testGetUserRepoPrefix()
{
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());
}
@Test
public void testSetUserRepoPrefix()
{
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());
ModelUtils.setUserRepoPrefix("@");
assertEquals("@", ModelUtils.getUserRepoPrefix());
ModelUtils.setUserRepoPrefix("");
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());
ModelUtils.setUserRepoPrefix("user/");
assertEquals("user/", ModelUtils.getUserRepoPrefix());
ModelUtils.setUserRepoPrefix("u_");
assertEquals("u_", ModelUtils.getUserRepoPrefix());
ModelUtils.setUserRepoPrefix(null);
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());
ModelUtils.setUserRepoPrefix("/somedir/otherdir/");
assertEquals("somedir/otherdir/", ModelUtils.getUserRepoPrefix());
}
@Test
public void testGetPersonalProject()
{
String username = "rob";
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX+username.toLowerCase(), ModelUtils.getPersonalProject(username));
username = "James";
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX+username.toLowerCase(), ModelUtils.getPersonalProject(username));
ModelUtils.setUserRepoPrefix("usr/");
username = "noMan";
assertEquals("usr/"+username.toLowerCase(), ModelUtils.getPersonalProject(username));
}
@Test
public void testGetPersonalPath()
{
String username = "rob";
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX+username.toLowerCase() + "/", ModelUtils.getPersonalPath(username));
username = "James";
assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX+username.toLowerCase() + "/", ModelUtils.getPersonalPath(username));
ModelUtils.setUserRepoPrefix("usr/");
username = "noMan";
assertEquals("usr/"+username.toLowerCase() + "/", ModelUtils.getPersonalPath(username));
}
@Test
public void testIsPersonalRepository()
{
String reponame = Constants.DEFAULT_USER_REPOSITORY_PREFIX + "one";
assertTrue(ModelUtils.isPersonalRepository(reponame));
reponame = "none";
assertFalse(ModelUtils.isPersonalRepository(reponame));
ModelUtils.setUserRepoPrefix("@@");
reponame = "@@two";
assertTrue(ModelUtils.isPersonalRepository(reponame));
ModelUtils.setUserRepoPrefix("users/");
reponame = "users/three";
assertTrue(ModelUtils.isPersonalRepository(reponame));
reponame = "project/four";
assertFalse(ModelUtils.isPersonalRepository(reponame));
}
@Test
public void testIsUsersPersonalRepository()
{
String reponame = Constants.DEFAULT_USER_REPOSITORY_PREFIX + "lynn";
assertTrue(ModelUtils.isUsersPersonalRepository("lynn", reponame));
reponame = "prjB";
assertFalse(ModelUtils.isUsersPersonalRepository("lynn", reponame));
ModelUtils.setUserRepoPrefix("@@");
reponame = "@@newton";
assertTrue(ModelUtils.isUsersPersonalRepository("newton", reponame));
assertFalse(ModelUtils.isUsersPersonalRepository("hertz", reponame));
ModelUtils.setUserRepoPrefix("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 = Constants.DEFAULT_USER_REPOSITORY_PREFIX + "lynn";
assertEquals("lynn", ModelUtils.getUserNameFromRepoPath(reponame));
ModelUtils.setUserRepoPrefix("@@");
reponame = "@@newton";
assertEquals("newton", ModelUtils.getUserNameFromRepoPath(reponame));
ModelUtils.setUserRepoPrefix("users/");
reponame = "users/fee";
assertEquals("fee", ModelUtils.getUserNameFromRepoPath(reponame));
}
@Test
public void testUserOwnership() {
ModelUtils.setUserRepoPrefix(Constants.DEFAULT_USER_REPOSITORY_PREFIX);
UserModel user = new UserModel("james");
user.own("test.git");
user.own("newyork/.*");
assertFalse(user.isOwner("test"));
assertTrue(user.isOwner("test.git"));
assertFalse(user.isOwner("newyork"));
assertTrue(user.isOwner("newyork/"));
assertTrue(user.isOwner("newyork/abc"));
assertTrue(user.isOwner("~james/"));
assertTrue(user.isOwner("~james/abc/123"));
}
}