You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ModelUtilsTest.java 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package com.gitblit.tests;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertFalse;
  4. import static org.junit.Assert.assertTrue;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import org.junit.After;
  8. import org.junit.Test;
  9. import com.gitblit.Keys;
  10. import com.gitblit.tests.mock.MemorySettings;
  11. import com.gitblit.utils.ModelUtils;
  12. public class ModelUtilsTest {
  13. private static final String DEFAULT_USER_REPO_PREFIX = "~";
  14. private static final Map<String, Object> backingMap = new HashMap<String, Object>();
  15. private static final MemorySettings ms = new MemorySettings(backingMap);
  16. private static void setPrefix(String prefix)
  17. {
  18. backingMap.put(Keys.git.userRepositoryPrefix, prefix);
  19. }
  20. private static void setRepoPrefix(String prefix)
  21. {
  22. backingMap.put(Keys.git.userRepositoryPrefix, prefix);
  23. ModelUtils.setUserRepoPrefix(ms);
  24. }
  25. @After
  26. public void resetPrefix()
  27. {
  28. setRepoPrefix(DEFAULT_USER_REPO_PREFIX);
  29. }
  30. @Test
  31. public void testGetUserRepoPrefix()
  32. {
  33. assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
  34. }
  35. @Test
  36. public void testSetUserRepoPrefix()
  37. {
  38. assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
  39. setPrefix("@");
  40. ModelUtils.setUserRepoPrefix(ms);
  41. assertEquals("@", ModelUtils.getUserRepoPrefix());
  42. backingMap.remove(Keys.git.userRepositoryPrefix);
  43. ModelUtils.setUserRepoPrefix(ms);
  44. assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
  45. setPrefix("user/");
  46. ModelUtils.setUserRepoPrefix(ms);
  47. assertEquals("user/", ModelUtils.getUserRepoPrefix());
  48. setPrefix("");
  49. ModelUtils.setUserRepoPrefix(ms);
  50. assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
  51. setPrefix("u_");
  52. ModelUtils.setUserRepoPrefix(ms);
  53. assertEquals("u_", ModelUtils.getUserRepoPrefix());
  54. ModelUtils.setUserRepoPrefix(null);
  55. assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
  56. setPrefix("/somedir/otherdir/");
  57. ModelUtils.setUserRepoPrefix(ms);
  58. assertEquals("somedir/otherdir/", ModelUtils.getUserRepoPrefix());
  59. setPrefix(DEFAULT_USER_REPO_PREFIX);
  60. ModelUtils.setUserRepoPrefix(ms);
  61. assertEquals(DEFAULT_USER_REPO_PREFIX, ModelUtils.getUserRepoPrefix());
  62. }
  63. @Test
  64. public void testGetPersonalPath()
  65. {
  66. String username = "rob";
  67. assertEquals(DEFAULT_USER_REPO_PREFIX+username.toLowerCase(), ModelUtils.getPersonalPath(username));
  68. username = "James";
  69. assertEquals(DEFAULT_USER_REPO_PREFIX+username.toLowerCase(), ModelUtils.getPersonalPath(username));
  70. setRepoPrefix("usr/");
  71. username = "noMan";
  72. assertEquals("usr/"+username.toLowerCase(), ModelUtils.getPersonalPath(username));
  73. }
  74. @Test
  75. public void testIsPersonalRepository()
  76. {
  77. String reponame = DEFAULT_USER_REPO_PREFIX + "one";
  78. assertTrue(ModelUtils.isPersonalRepository(reponame));
  79. reponame = "none";
  80. assertFalse(ModelUtils.isPersonalRepository(reponame));
  81. setRepoPrefix("@@");
  82. reponame = "@@two";
  83. assertTrue(ModelUtils.isPersonalRepository(reponame));
  84. setRepoPrefix("users/");
  85. reponame = "users/three";
  86. assertTrue(ModelUtils.isPersonalRepository(reponame));
  87. reponame = "project/four";
  88. assertFalse(ModelUtils.isPersonalRepository(reponame));
  89. }
  90. @Test
  91. public void testIsUsersPersonalRepository()
  92. {
  93. String reponame = DEFAULT_USER_REPO_PREFIX + "lynn";
  94. assertTrue(ModelUtils.isUsersPersonalRepository("lynn", reponame));
  95. reponame = "prjB";
  96. assertFalse(ModelUtils.isUsersPersonalRepository("lynn", reponame));
  97. setRepoPrefix("@@");
  98. reponame = "@@newton";
  99. assertTrue(ModelUtils.isUsersPersonalRepository("newton", reponame));
  100. assertFalse(ModelUtils.isUsersPersonalRepository("hertz", reponame));
  101. setRepoPrefix("users/");
  102. reponame = "users/fee";
  103. assertTrue(ModelUtils.isUsersPersonalRepository("fee", reponame));
  104. assertFalse(ModelUtils.isUsersPersonalRepository("gnome", reponame));
  105. reponame = "project/nsbl";
  106. assertFalse(ModelUtils.isUsersPersonalRepository("fee", reponame));
  107. }
  108. @Test
  109. public void testGetUserNameFromRepoPath()
  110. {
  111. String reponame = DEFAULT_USER_REPO_PREFIX + "lynn";
  112. assertEquals("lynn", ModelUtils.getUserNameFromRepoPath(reponame));
  113. setRepoPrefix("@@");
  114. reponame = "@@newton";
  115. assertEquals("newton", ModelUtils.getUserNameFromRepoPath(reponame));
  116. setRepoPrefix("users/");
  117. reponame = "users/fee";
  118. assertEquals("fee", ModelUtils.getUserNameFromRepoPath(reponame));
  119. }
  120. }