From f76fee63ed9cb3a30d3c0c092d860b1cb93a481b Mon Sep 17 00:00:00 2001 From: Gerard Smyth <gerard.smyth@gmail.com> Date: Thu, 08 May 2014 13:09:30 -0400 Subject: [PATCH] Updated the SyndicationServlet to provide an additional option to return details of the tags in the repository instead of the commits. This uses a new 'ot' request parameter to indicate the object type of the content to return, which can be ither TAG or COMMIT. If this is not provided, then COMMIT is assumed to maintain backwards compatability. If tags are returned, then the paging parameters, 'l' and 'pg' are still supported, but searching options are currently ignored. --- src/test/java/com/gitblit/tests/PermissionsTest.java | 993 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 647 insertions(+), 346 deletions(-) diff --git a/src/test/java/com/gitblit/tests/PermissionsTest.java b/src/test/java/com/gitblit/tests/PermissionsTest.java index 5a95104..46695e9 100644 --- a/src/test/java/com/gitblit/tests/PermissionsTest.java +++ b/src/test/java/com/gitblit/tests/PermissionsTest.java @@ -17,8 +17,6 @@ import java.util.Date; -import junit.framework.Assert; - import org.junit.Test; import com.gitblit.Constants.AccessPermission; @@ -30,11 +28,11 @@ /** * Comprehensive, brute-force test of all permutations of discrete permissions. - * + * * @author James Moger * */ -public class PermissionsTest extends Assert { +public class PermissionsTest extends GitblitUnitTest { /** * Admin access rights/permissions @@ -43,56 +41,60 @@ public void testAdmin() throws Exception { UserModel user = new UserModel("admin"); user.canAdmin = true; - + for (AccessRestrictionType ar : AccessRestrictionType.values()) { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = ar; - + assertTrue("admin CAN NOT view!", user.canView(repository)); assertTrue("admin CAN NOT clone!", user.canClone(repository)); assertTrue("admin CAN NOT push!", user.canPush(repository)); - + assertTrue("admin CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("admin CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("admin CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("admin has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + assertTrue("admin CAN NOT fork!", user.canFork(repository)); - + assertTrue("admin CAN NOT delete!", user.canDelete(repository)); assertTrue("admin CAN NOT edit!", user.canEdit(repository)); } } - + /** - * Anonymous access rights/permissions + * Anonymous access rights/permissions */ @Test public void testAnonymous_NONE() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.NONE; - + UserModel user = UserModel.ANONYMOUS; - + // all permissions, except fork assertTrue("anonymous CAN NOT view!", user.canView(repository)); assertTrue("anonymous CAN NOT clone!", user.canClone(repository)); assertTrue("anonymous CAN NOT push!", user.canPush(repository)); - + assertTrue("anonymous CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("anonymous CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("anonymous CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("anonymous has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); repository.allowForks = false; assertFalse("anonymous CAN fork!", user.canFork(repository)); repository.allowForks = true; assertFalse("anonymous CAN fork!", user.canFork(repository)); - + assertFalse("anonymous CAN delete!", user.canDelete(repository)); assertFalse("anonymous CAN edit!", user.canEdit(repository)); } - + @Test public void testAnonymous_PUSH() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); @@ -104,17 +106,19 @@ assertTrue("anonymous CAN NOT view!", user.canView(repository)); assertTrue("anonymous CAN NOT clone!", user.canClone(repository)); assertFalse("anonymous CAN push!", user.canPush(repository)); - + assertFalse("anonymous CAN create ref!", user.canCreateRef(repository)); assertFalse("anonymous CAN delete ref!", user.canDeleteRef(repository)); assertFalse("anonymous CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("anonymous has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; assertFalse("anonymous CAN fork!", user.canFork(repository)); repository.allowForks = true; assertFalse("anonymous CAN fork!", user.canFork(repository)); } - + @Test public void testAnonymous_CLONE() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); @@ -126,58 +130,64 @@ assertTrue("anonymous CAN NOT view!", user.canView(repository)); assertFalse("anonymous CAN clone!", user.canClone(repository)); assertFalse("anonymous CAN push!", user.canPush(repository)); - + assertFalse("anonymous CAN create ref!", user.canCreateRef(repository)); assertFalse("anonymous CAN delete ref!", user.canDeleteRef(repository)); assertFalse("anonymous CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("anonymous has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); repository.allowForks = false; assertFalse("anonymous CAN fork!", user.canFork(repository)); repository.allowForks = true; assertFalse("anonymous CAN fork!", user.canFork(repository)); } - + @Test public void testAnonymous_VIEW() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = UserModel.ANONYMOUS; assertFalse("anonymous CAN view!", user.canView(repository)); assertFalse("anonymous CAN clone!", user.canClone(repository)); assertFalse("anonymous CAN push!", user.canPush(repository)); - + assertFalse("anonymous CAN create ref!", user.canCreateRef(repository)); assertFalse("anonymous CAN delete ref!", user.canDeleteRef(repository)); assertFalse("anonymous CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("anonymous has wrong permission!", AccessPermission.NONE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; assertFalse("anonymous CAN fork!", user.canFork(repository)); repository.allowForks = true; assertFalse("anonymous CAN fork!", user.canFork(repository)); } - + /** - * Authenticated access rights/permissions + * Authenticated access rights/permissions */ @Test public void testAuthenticated_NONE() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.AUTHENTICATED; repository.accessRestriction = AccessRestrictionType.NONE; - + UserModel user = new UserModel("test"); - + // all permissions, except fork assertTrue("authenticated CAN NOT view!", user.canView(repository)); assertTrue("authenticated CAN NOT clone!", user.canClone(repository)); assertTrue("authenticated CAN NOT push!", user.canPush(repository)); - + assertTrue("authenticated CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("authenticated CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("authenticated CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("authenticated has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); user.canFork = false; repository.allowForks = false; @@ -186,7 +196,7 @@ assertFalse("authenticated CAN fork!", user.canFork(repository)); user.canFork = true; assertTrue("authenticated CAN NOT fork!", user.canFork(repository)); - + assertFalse("authenticated CAN delete!", user.canDelete(repository)); assertFalse("authenticated CAN edit!", user.canEdit(repository)); } @@ -196,16 +206,18 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.AUTHENTICATED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); assertTrue("authenticated CAN NOT view!", user.canView(repository)); assertTrue("authenticated CAN NOT clone!", user.canClone(repository)); assertTrue("authenticated CAN NOT push!", user.canPush(repository)); - + assertTrue("authenticated CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("authenticated CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("authenticated CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("authenticated has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); user.canFork = false; repository.allowForks = false; @@ -215,22 +227,24 @@ user.canFork = true; assertTrue("authenticated CAN NOT fork!", user.canFork(repository)); } - + @Test public void testAuthenticated_CLONE() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.AUTHENTICATED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); assertTrue("authenticated CAN NOT view!", user.canView(repository)); assertTrue("authenticated CAN NOT clone!", user.canClone(repository)); assertTrue("authenticated CAN NOT push!", user.canPush(repository)); - + assertTrue("authenticated CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("authenticated CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("authenticated CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("authenticated has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); user.canFork = false; repository.allowForks = false; @@ -240,22 +254,24 @@ user.canFork = true; assertTrue("authenticated CAN NOT fork!", user.canFork(repository)); } - + @Test public void testAuthenticated_VIEW() throws Exception { RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.AUTHENTICATED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); assertTrue("authenticated CAN NOT view!", user.canView(repository)); assertTrue("authenticated CAN NOT clone!", user.canClone(repository)); assertTrue("authenticated CAN NOT push!", user.canPush(repository)); - + assertTrue("authenticated CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("authenticated CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("authenticated CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("authenticated has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); user.canFork = false; repository.allowForks = false; @@ -265,7 +281,7 @@ user.canFork = true; assertTrue("authenticated CAN NOT fork!", user.canFork(repository)); } - + /** * NONE_NONE = NO access restriction, NO access permission */ @@ -276,15 +292,17 @@ repository.accessRestriction = AccessRestrictionType.NONE; UserModel user = new UserModel("test"); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -292,11 +310,11 @@ assertFalse("named CAN fork!", user.canFork(repository)); repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); - + assertFalse("named CAN delete!", user.canDelete(repository)); assertFalse("named CAN edit!", user.canEdit(repository)); } - + /** * PUSH_NONE = PUSH access restriction, NO access permission */ @@ -305,16 +323,18 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -324,7 +344,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * CLONE_NONE = CLONE access restriction, NO access permission */ @@ -333,16 +353,18 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertFalse("named CAN clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -352,7 +374,7 @@ repository.allowForks = true; assertFalse("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_NONE = VIEW access restriction, NO access permission */ @@ -361,17 +383,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); - + assertFalse("named CAN view!", user.canView(repository)); assertFalse("named CAN clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.NONE, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -381,7 +405,7 @@ assertFalse("named CAN NOT fork!", user.canFork(repository)); } - + /** * NONE_VIEW = NO access restriction, VIEW access permission. * (not useful scenario) @@ -394,15 +418,17 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.VIEW); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -411,7 +437,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * PUSH_VIEW = PUSH access restriction, VIEW access permission */ @@ -420,17 +446,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.VIEW); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -440,7 +468,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * CLONE_VIEW = CLONE access restriction, VIEW access permission */ @@ -449,17 +477,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.VIEW); assertTrue("named CAN NOT view!", user.canView(repository)); assertFalse("named CAN clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -469,7 +499,7 @@ repository.allowForks = true; assertFalse("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_VIEW = VIEW access restriction, VIEW access permission */ @@ -478,18 +508,20 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.VIEW); assertTrue("named CAN NOT view!", user.canView(repository)); assertFalse("named CAN clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -498,7 +530,7 @@ repository.allowForks = true; assertFalse("named CAN NOT fork!", user.canFork(repository)); } - + /** * NONE_CLONE = NO access restriction, CLONE access permission. * (not useful scenario) @@ -511,43 +543,16 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CLONE); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - - repository.allowForks = false; - user.canFork = false; - assertFalse("named CAN fork!", user.canFork(repository)); - user.canFork = true; - assertFalse("named CAN fork!", user.canFork(repository)); - repository.allowForks = true; - assertTrue("named CAN NOT fork!", user.canFork(repository)); - } - - /** - * PUSH_CLONE = PUSH access restriction, CLONE access permission - */ - @Test - public void testNamed_PUSH_READ() throws Exception { - RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); - repository.authorizationControl = AuthorizationControl.NAMED; - repository.accessRestriction = AccessRestrictionType.PUSH; - - UserModel user = new UserModel("test"); - user.setRepositoryPermission(repository.name, AccessPermission.CLONE); - - assertTrue("named CAN NOT view!", user.canView(repository)); - assertTrue("named CAN NOT clone!", user.canClone(repository)); - assertFalse("named CAN push!", user.canPush(repository)); - - assertFalse("named CAN create ref!", user.canCreateRef(repository)); - assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); - assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -557,7 +562,38 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + + /** + * PUSH_CLONE = PUSH access restriction, CLONE access permission + */ + @Test + public void testNamed_PUSH_CLONE() throws Exception { + RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); + repository.authorizationControl = AuthorizationControl.NAMED; + repository.accessRestriction = AccessRestrictionType.PUSH; + + UserModel user = new UserModel("test"); + user.setRepositoryPermission(repository.name, AccessPermission.CLONE); + + assertTrue("named CAN NOT view!", user.canView(repository)); + assertTrue("named CAN NOT clone!", user.canClone(repository)); + assertFalse("named CAN push!", user.canPush(repository)); + + assertFalse("named CAN create ref!", user.canCreateRef(repository)); + assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); + assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); + + repository.allowForks = false; + user.canFork = false; + assertFalse("named CAN fork!", user.canFork(repository)); + user.canFork = true; + assertFalse("named CAN fork!", user.canFork(repository)); + repository.allowForks = true; + assertTrue("named CAN NOT fork!", user.canFork(repository)); + } + /** * CLONE_CLONE = CLONE access restriction, CLONE access permission */ @@ -566,17 +602,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CLONE); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -586,7 +624,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_CLONE = VIEW access restriction, CLONE access permission */ @@ -595,18 +633,20 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CLONE); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertFalse("named CAN push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -614,7 +654,7 @@ assertFalse("named CAN fork!", user.canFork(repository)); repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); - } + } /** * NONE_PUSH = NO access restriction, PUSH access permission. @@ -628,15 +668,17 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.PUSH); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -645,7 +687,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * PUSH_PUSH = PUSH access restriction, PUSH access permission */ @@ -654,17 +696,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.PUSH); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -674,7 +718,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * CLONE_PUSH = CLONE access restriction, PUSH access permission */ @@ -683,17 +727,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.PUSH); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete red!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -703,7 +749,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_PUSH = VIEW access restriction, PUSH access permission */ @@ -712,18 +758,20 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.PUSH); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN not push!", user.canPush(repository)); - + assertFalse("named CAN create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -745,15 +793,17 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CREATE); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -762,7 +812,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * PUSH_CREATE = PUSH access restriction, CREATE access permission */ @@ -771,17 +821,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CREATE); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.CREATE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -791,7 +843,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * CLONE_CREATE = CLONE access restriction, CREATE access permission */ @@ -800,17 +852,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CREATE); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete red!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.CREATE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -820,7 +874,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_CREATE = VIEW access restriction, CREATE access permission */ @@ -829,18 +883,20 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.CREATE); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN not push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertFalse("named CAN delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.CREATE, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -862,15 +918,17 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.DELETE); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -879,7 +937,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * PUSH_DELETE = PUSH access restriction, DELETE access permission */ @@ -888,17 +946,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.DELETE); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.DELETE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -908,7 +968,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * CLONE_DELETE = CLONE access restriction, DELETE access permission */ @@ -917,17 +977,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.DELETE); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete red!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.DELETE, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -937,7 +999,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_DELETE = VIEW access restriction, DELETE access permission */ @@ -946,18 +1008,20 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.DELETE); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN not push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertFalse("named CAN rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.DELETE, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -966,7 +1030,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * NONE_REWIND = NO access restriction, REWIND access permission. * (not useful scenario) @@ -979,15 +1043,17 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.REWIND); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -996,7 +1062,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * PUSH_REWIND = PUSH access restriction, REWIND access permission */ @@ -1005,17 +1071,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.PUSH; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.REWIND); - + assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -1025,7 +1093,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * CLONE_REWIND = CLONE access restriction, REWIND access permission */ @@ -1034,17 +1102,19 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.CLONE; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.REWIND); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); repository.allowForks = false; user.canFork = false; @@ -1054,7 +1124,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * VIEW_REWIND = VIEW access restriction, REWIND access permission */ @@ -1063,18 +1133,20 @@ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; - + UserModel user = new UserModel("test"); user.setRepositoryPermission(repository.name, AccessPermission.REWIND); assertTrue("named CAN NOT view!", user.canView(repository)); assertTrue("named CAN NOT clone!", user.canClone(repository)); assertTrue("named CAN NOT push!", user.canPush(repository)); - + assertTrue("named CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("named CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("named CAN NOT rewind ref!", user.canRewindRef(repository)); - + + assertEquals("named has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + repository.allowForks = false; user.canFork = false; assertFalse("named CAN fork!", user.canFork(repository)); @@ -1083,7 +1155,7 @@ repository.allowForks = true; assertTrue("named CAN NOT fork!", user.canFork(repository)); } - + /** * NONE_NONE = NO access restriction, NO access permission */ @@ -1094,16 +1166,19 @@ repository.accessRestriction = AccessRestrictionType.NONE; TeamModel team = new TeamModel("test"); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); + } - + /** * PUSH_NONE = PUSH access restriction, NO access permission */ @@ -1114,14 +1189,17 @@ repository.accessRestriction = AccessRestrictionType.PUSH; TeamModel team = new TeamModel("test"); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repository).permission); + } /** @@ -1134,14 +1212,16 @@ repository.accessRestriction = AccessRestrictionType.CLONE; TeamModel team = new TeamModel("test"); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertFalse("team CAN clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.VIEW, team.getRepositoryPermission(repository).permission); } /** @@ -1154,16 +1234,18 @@ repository.accessRestriction = AccessRestrictionType.VIEW; TeamModel team = new TeamModel("test"); - + assertFalse("team CAN view!", team.canView(repository)); assertFalse("team CAN clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.NONE, team.getRepositoryPermission(repository).permission); } - + /** * NONE_PUSH = NO access restriction, PUSH access permission * (not useful scenario) @@ -1176,16 +1258,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.PUSH); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * PUSH_PUSH = PUSH access restriction, PUSH access permission */ @@ -1197,16 +1281,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.PUSH); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.PUSH, team.getRepositoryPermission(repository).permission); } - + /** * CLONE_PUSH = CLONE access restriction, PUSH access permission */ @@ -1218,16 +1304,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.PUSH); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.PUSH, team.getRepositoryPermission(repository).permission); } - + /** * VIEW_PUSH = VIEW access restriction, PUSH access permission */ @@ -1239,16 +1327,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.PUSH); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.PUSH, team.getRepositoryPermission(repository).permission); } - + /** * NONE_CREATE = NO access restriction, CREATE access permission * (not useful scenario) @@ -1261,16 +1351,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CREATE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * PUSH_CREATE = PUSH access restriction, CREATE access permission */ @@ -1282,16 +1374,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CREATE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CREATE, team.getRepositoryPermission(repository).permission); } - + /** * CLONE_CREATE = CLONE access restriction, CREATE access permission */ @@ -1303,16 +1397,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CREATE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CREATE, team.getRepositoryPermission(repository).permission); } - + /** * VIEW_CREATE = VIEW access restriction, CREATE access permission */ @@ -1324,14 +1420,16 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CREATE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CREATE, team.getRepositoryPermission(repository).permission); } /** @@ -1346,16 +1444,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.DELETE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * PUSH_DELETE = PUSH access restriction, DELETE access permission */ @@ -1367,16 +1467,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.DELETE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.DELETE, team.getRepositoryPermission(repository).permission); } - + /** * CLONE_DELETE = CLONE access restriction, DELETE access permission */ @@ -1388,16 +1490,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.DELETE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.DELETE, team.getRepositoryPermission(repository).permission); } - + /** * VIEW_DELETE = VIEW access restriction, DELETE access permission */ @@ -1409,16 +1513,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.DELETE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.DELETE, team.getRepositoryPermission(repository).permission); } - + /** * NONE_REWIND = NO access restriction, REWIND access permission * (not useful scenario) @@ -1431,16 +1537,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.REWIND); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * PUSH_REWIND = PUSH access restriction, REWIND access permission */ @@ -1452,16 +1560,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.REWIND); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * CLONE_REWIND = CLONE access restriction, REWIND access permission */ @@ -1473,16 +1583,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.REWIND); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * VIEW_REWIND = VIEW access restriction, REWIND access permission */ @@ -1494,16 +1606,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.REWIND); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } - + /** * NONE_CLONE = NO access restriction, CLONE access permission * (not useful scenario) @@ -1516,14 +1630,16 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CLONE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } /** @@ -1537,14 +1653,16 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CLONE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repository).permission); } /** @@ -1558,16 +1676,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CLONE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repository).permission); } - + /** * VIEW_CLONE = VIEW access restriction, CLONE access permission */ @@ -1579,14 +1699,16 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.CLONE); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repository).permission); } /** @@ -1601,14 +1723,16 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.VIEW); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertTrue("team CAN NOT push!", team.canPush(repository)); - + assertTrue("team CAN NOT create ref!", team.canCreateRef(repository)); assertTrue("team CAN NOT delete ref!", team.canDeleteRef(repository)); assertTrue("team CAN NOT rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repository).permission); } /** @@ -1622,16 +1746,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.VIEW); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertTrue("team CAN NOT clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repository).permission); } - + /** * CLONE_VIEW = CLONE access restriction, VIEW access permission */ @@ -1643,16 +1769,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.VIEW); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertFalse("team CAN clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.VIEW, team.getRepositoryPermission(repository).permission); } - + /** * VIEW_VIEW = VIEW access restriction, VIEW access permission */ @@ -1664,16 +1792,18 @@ TeamModel team = new TeamModel("test"); team.setRepositoryPermission(repository.name, AccessPermission.VIEW); - + assertTrue("team CAN NOT view!", team.canView(repository)); assertFalse("team CAN clone!", team.canClone(repository)); assertFalse("team CAN push!", team.canPush(repository)); - + assertFalse("team CAN create ref!", team.canCreateRef(repository)); assertFalse("team CAN delete ref!", team.canDeleteRef(repository)); assertFalse("team CAN rewind ref!", team.canRewindRef(repository)); + + assertEquals("team has wrong permission!", AccessPermission.VIEW, team.getRepositoryPermission(repository).permission); } - + /** * NONE_NONE = NO access restriction, NO access permission */ @@ -1686,16 +1816,18 @@ TeamModel team = new TeamModel("test"); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * PUSH_NONE = PUSH access restriction, NO access permission */ @@ -1708,14 +1840,16 @@ TeamModel team = new TeamModel("test"); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); } /** @@ -1730,14 +1864,16 @@ TeamModel team = new TeamModel("test"); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertFalse("team member CAN clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); } /** @@ -1752,16 +1888,18 @@ TeamModel team = new TeamModel("test"); UserModel user = new UserModel("test"); user.teams.add(team); - + assertFalse("team member CAN view!", user.canView(repository)); assertFalse("team member CAN clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.NONE, user.getRepositoryPermission(repository).permission); } - + /** * NONE_PUSH = NO access restriction, PUSH access permission * (not useful scenario) @@ -1776,16 +1914,18 @@ team.setRepositoryPermission(repository.name, AccessPermission.PUSH); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * PUSH_PUSH = PUSH access restriction, PUSH access permission */ @@ -1803,12 +1943,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(repository).permission); } - + /** * CLONE_PUSH = CLONE access restriction, PUSH access permission */ @@ -1826,12 +1968,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(repository).permission); } - + /** * VIEW_PUSH = VIEW access restriction, PUSH access permission */ @@ -1849,12 +1993,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(repository).permission); } - + /** * NONE_CREATE = NO access restriction, CREATE access permission * (not useful scenario) @@ -1869,16 +2015,18 @@ team.setRepositoryPermission(repository.name, AccessPermission.CREATE); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * PUSH_CREATE = PUSH access restriction, CREATE access permission */ @@ -1896,12 +2044,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CREATE, user.getRepositoryPermission(repository).permission); } - + /** * CLONE_CREATE = CLONE access restriction, CREATE access permission */ @@ -1919,12 +2069,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CREATE, user.getRepositoryPermission(repository).permission); } - + /** * VIEW_CREATE = VIEW access restriction, CREATE access permission */ @@ -1942,10 +2094,12 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CREATE, user.getRepositoryPermission(repository).permission); } /** @@ -1962,16 +2116,18 @@ team.setRepositoryPermission(repository.name, AccessPermission.DELETE); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * PUSH_DELETE = PUSH access restriction, DELETE access permission */ @@ -1989,12 +2145,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.DELETE, user.getRepositoryPermission(repository).permission); } - + /** * CLONE_DELETE = CLONE access restriction, DELETE access permission */ @@ -2012,12 +2170,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.DELETE, user.getRepositoryPermission(repository).permission); } - + /** * VIEW_DELETE = VIEW access restriction, DELETE access permission */ @@ -2035,10 +2195,12 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.DELETE, user.getRepositoryPermission(repository).permission); } /** @@ -2055,16 +2217,18 @@ team.setRepositoryPermission(repository.name, AccessPermission.REWIND); UserModel user = new UserModel("test"); user.teams.add(team); - + assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * PUSH_REWIND = PUSH access restriction, REWIND access permission */ @@ -2082,12 +2246,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * CLONE_REWIND = CLONE access restriction, REWIND access permission */ @@ -2105,12 +2271,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * VIEW_REWIND = VIEW access restriction, REWIND access permission */ @@ -2128,12 +2296,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } - + /** * NONE_CLONE = NO access restriction, CLONE access permission * (not useful scenario) @@ -2152,10 +2322,12 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } /** @@ -2175,10 +2347,12 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); } /** @@ -2198,12 +2372,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); } - + /** * VIEW_CLONE = VIEW access restriction, CLONE access permission */ @@ -2221,10 +2397,12 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); } /** @@ -2245,10 +2423,12 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertTrue("team member CAN NOT push!", user.canPush(repository)); - + assertTrue("team member CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("team member CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("team member CAN NOT rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); } /** @@ -2268,12 +2448,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertTrue("team member CAN NOT clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); } - + /** * CLONE_VIEW = CLONE access restriction, VIEW access permission */ @@ -2291,12 +2473,14 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertFalse("team member CAN clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); } - + /** * VIEW_VIEW = VIEW access restriction, VIEW access permission */ @@ -2314,15 +2498,17 @@ assertTrue("team member CAN NOT view!", user.canView(repository)); assertFalse("team member CAN clone!", user.canClone(repository)); assertFalse("team member CAN push!", user.canPush(repository)); - + assertFalse("team member CAN create ref!", user.canCreateRef(repository)); assertFalse("team member CAN delete ref!", user.canDeleteRef(repository)); assertFalse("team member CAN rewind ref!", user.canRewindRef(repository)); + + assertEquals("team member has wrong permission!", AccessPermission.VIEW, user.getRepositoryPermission(repository).permission); } - + @Test public void testOwner() throws Exception { - RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); + RepositoryModel repository = new RepositoryModel("~jj/myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; @@ -2333,20 +2519,41 @@ assertTrue("owner CAN NOT view!", user.canView(repository)); assertTrue("owner CAN NOT clone!", user.canClone(repository)); assertTrue("owner CAN NOT push!", user.canPush(repository)); - + assertTrue("owner CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("owner CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("owner CAN NOT rewind ref!", user.canRewindRef(repository)); + assertEquals("owner has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + assertTrue("owner CAN NOT fork!", user.canFork(repository)); - + assertFalse("owner CAN NOT delete!", user.canDelete(repository)); assertTrue("owner CAN NOT edit!", user.canEdit(repository)); + + // test personal repo owner + UserModel jj = new UserModel("jj"); + assertFalse("jj SHOULD NOT HAVE a repository permission!", jj.hasRepositoryPermission(repository.name)); + assertTrue("jj CAN NOT view!", jj.canView(repository)); + assertTrue("jj CAN NOT clone!", jj.canClone(repository)); + assertTrue("jj CAN NOT push!", jj.canPush(repository)); + + assertTrue("jj CAN NOT create ref!", jj.canCreateRef(repository)); + assertTrue("jj CAN NOT delete ref!", jj.canDeleteRef(repository)); + assertTrue("jj CAN NOT rewind ref!", jj.canRewindRef(repository)); + + assertEquals("jj has wrong permission!", AccessPermission.REWIND, jj.getRepositoryPermission(repository).permission); + + assertFalse("jj CAN fork!", jj.canFork(repository)); + + assertTrue("jj CAN NOT delete!", jj.canDelete(repository)); + assertTrue("jj CAN NOT edit!", jj.canEdit(repository)); + assertTrue(repository.isOwner(jj.username)); } - + @Test public void testMultipleOwners() throws Exception { - RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date()); + RepositoryModel repository = new RepositoryModel("~jj/myrepo.git", null, null, new Date()); repository.authorizationControl = AuthorizationControl.NAMED; repository.accessRestriction = AccessRestrictionType.VIEW; @@ -2360,35 +2567,58 @@ assertTrue("owner CAN NOT view!", user.canView(repository)); assertTrue("owner CAN NOT clone!", user.canClone(repository)); assertTrue("owner CAN NOT push!", user.canPush(repository)); - + assertTrue("owner CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("owner CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("owner CAN NOT rewind ref!", user.canRewindRef(repository)); + assertEquals("owner has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + assertTrue("owner CAN NOT fork!", user.canFork(repository)); - + assertFalse("owner CAN NOT delete!", user.canDelete(repository)); assertTrue("owner CAN NOT edit!", user.canEdit(repository)); - + // second owner assertFalse("user SHOULD NOT HAVE a repository permission!", user2.hasRepositoryPermission(repository.name)); assertTrue("owner CAN NOT view!", user2.canView(repository)); assertTrue("owner CAN NOT clone!", user2.canClone(repository)); assertTrue("owner CAN NOT push!", user2.canPush(repository)); - + assertTrue("owner CAN NOT create ref!", user2.canCreateRef(repository)); assertTrue("owner CAN NOT delete ref!", user2.canDeleteRef(repository)); assertTrue("owner CAN NOT rewind ref!", user2.canRewindRef(repository)); + assertEquals("owner has wrong permission!", AccessPermission.REWIND, user2.getRepositoryPermission(repository).permission); + assertTrue("owner CAN NOT fork!", user2.canFork(repository)); - + assertFalse("owner CAN NOT delete!", user2.canDelete(repository)); assertTrue("owner CAN NOT edit!", user2.canEdit(repository)); - + assertTrue(repository.isOwner(user.username)); - assertTrue(repository.isOwner(user2.username)); + assertTrue(repository.isOwner(user2.username)); + + // test personal repo owner + UserModel jj = new UserModel("jj"); + assertFalse("jj SHOULD NOT HAVE a repository permission!", jj.hasRepositoryPermission(repository.name)); + assertTrue("jj CAN NOT view!", jj.canView(repository)); + assertTrue("jj CAN NOT clone!", jj.canClone(repository)); + assertTrue("jj CAN NOT push!", jj.canPush(repository)); + + assertTrue("jj CAN NOT create ref!", jj.canCreateRef(repository)); + assertTrue("jj CAN NOT delete ref!", jj.canDeleteRef(repository)); + assertTrue("jj CAN NOT rewind ref!", jj.canRewindRef(repository)); + + assertEquals("jj has wrong permission!", AccessPermission.REWIND, jj.getRepositoryPermission(repository).permission); + + assertFalse("jj CAN fork!", jj.canFork(repository)); + + assertTrue("jj CAN NOT delete!", jj.canDelete(repository)); + assertTrue("jj CAN NOT edit!", jj.canEdit(repository)); + assertTrue(repository.isOwner(jj.username)); } - + @Test public void testOwnerPersonalRepository() throws Exception { RepositoryModel repository = new RepositoryModel("~test/myrepo.git", null, null, new Date()); @@ -2402,13 +2632,15 @@ assertTrue("user CAN NOT view!", user.canView(repository)); assertTrue("user CAN NOT clone!", user.canClone(repository)); assertTrue("user CAN NOT push!", user.canPush(repository)); - + assertTrue("user CAN NOT create ref!", user.canCreateRef(repository)); assertTrue("user CAN NOT delete ref!", user.canDeleteRef(repository)); assertTrue("user CAN NOT rewind ref!", user.canRewindRef(repository)); + assertEquals("user has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repository).permission); + assertFalse("user CAN fork!", user.canFork(repository)); - + assertTrue("user CAN NOT delete!", user.canDelete(repository)); assertTrue("user CAN NOT edit!", user.canEdit(repository)); } @@ -2426,17 +2658,19 @@ assertFalse("user CAN view!", user.canView(repository)); assertFalse("user CAN clone!", user.canClone(repository)); assertFalse("user CAN push!", user.canPush(repository)); - + assertFalse("user CAN create ref!", user.canCreateRef(repository)); assertFalse("user CAN delete ref!", user.canDeleteRef(repository)); assertFalse("user CAN rewind ref!", user.canRewindRef(repository)); + assertEquals("user has wrong permission!", AccessPermission.NONE, user.getRepositoryPermission(repository).permission); + assertFalse("user CAN fork!", user.canFork(repository)); - + assertFalse("user CAN delete!", user.canDelete(repository)); assertFalse("user CAN edit!", user.canEdit(repository)); } - + @Test public void testRegexMatching() throws Exception { RepositoryModel repository = new RepositoryModel("ubercool/_my-r/e~po.git", null, null, new Date()); @@ -2450,20 +2684,22 @@ assertTrue("user CAN NOT view!", user.canView(repository)); assertTrue("user CAN NOT clone!", user.canClone(repository)); assertFalse("user CAN push!", user.canPush(repository)); - + assertFalse("user CAN create ref!", user.canCreateRef(repository)); assertFalse("user CAN delete ref!", user.canDeleteRef(repository)); assertFalse("user CAN rewind ref!", user.canRewindRef(repository)); + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repository).permission); + assertFalse("user CAN fork!", user.canFork(repository)); - + assertFalse("user CAN delete!", user.canDelete(repository)); assertFalse("user CAN edit!", user.canEdit(repository)); } @Test public void testRegexIncludeCommonExcludePersonal() throws Exception { - + UserModel user = new UserModel("test"); user.setRepositoryPermission("[^~].*", AccessPermission.CLONE); @@ -2471,18 +2707,20 @@ RepositoryModel common = new RepositoryModel("ubercool/_my-r/e~po.git", null, null, new Date()); common.authorizationControl = AuthorizationControl.NAMED; common.accessRestriction = AccessRestrictionType.VIEW; - + assertTrue("user DOES NOT HAVE a repository permission!", user.hasRepositoryPermission(common.name)); assertTrue("user CAN NOT view!", user.canView(common)); assertTrue("user CAN NOT clone!", user.canClone(common)); assertFalse("user CAN push!", user.canPush(common)); - + assertFalse("user CAN create ref!", user.canCreateRef(common)); assertFalse("user CAN delete ref!", user.canDeleteRef(common)); assertFalse("user CAN rewind ref!", user.canRewindRef(common)); + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(common).permission); + assertFalse("user CAN fork!", user.canFork(common)); - + assertFalse("user CAN delete!", user.canDelete(common)); assertFalse("user CAN edit!", user.canEdit(common)); @@ -2490,22 +2728,24 @@ RepositoryModel personal = new RepositoryModel("~ubercool/_my-r/e~po.git", null, null, new Date()); personal.authorizationControl = AuthorizationControl.NAMED; personal.accessRestriction = AccessRestrictionType.VIEW; - + assertFalse("user HAS a repository permission!", user.hasRepositoryPermission(personal.name)); assertFalse("user CAN NOT view!", user.canView(personal)); assertFalse("user CAN NOT clone!", user.canClone(personal)); assertFalse("user CAN push!", user.canPush(personal)); - + assertFalse("user CAN create ref!", user.canCreateRef(personal)); assertFalse("user CAN delete ref!", user.canDeleteRef(personal)); assertFalse("user CAN rewind ref!", user.canRewindRef(personal)); + assertEquals("user has wrong permission!", AccessPermission.NONE, user.getRepositoryPermission(personal).permission); + assertFalse("user CAN fork!", user.canFork(personal)); - + assertFalse("user CAN delete!", user.canDelete(personal)); assertFalse("user CAN edit!", user.canEdit(personal)); } - + @Test public void testRegexMatching2() throws Exception { RepositoryModel personal = new RepositoryModel("~ubercool/_my-r/e~po.git", null, null, new Date()); @@ -2517,23 +2757,25 @@ user.setRepositoryPermission("[^~].*", AccessPermission.CLONE); // permitall ~ubercool repositories user.setRepositoryPermission("~ubercool/.*", AccessPermission.CLONE); - + // personal assertTrue("user DOES NOT HAVE a repository permission!", user.hasRepositoryPermission(personal.name)); assertTrue("user CAN NOT view!", user.canView(personal)); assertTrue("user CAN NOT clone!", user.canClone(personal)); assertFalse("user CAN push!", user.canPush(personal)); - + assertFalse("user CAN create ref!", user.canCreateRef(personal)); assertFalse("user CAN delete ref!", user.canDeleteRef(personal)); assertFalse("user CAN rewind ref!", user.canRewindRef(personal)); + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(personal).permission); + assertFalse("user CAN fork!", user.canFork(personal)); - + assertFalse("user CAN delete!", user.canDelete(personal)); assertFalse("user CAN edit!", user.canEdit(personal)); } - + @Test public void testRegexOrder() throws Exception { RepositoryModel personal = new RepositoryModel("~ubercool/_my-r/e~po.git", null, null, new Date()); @@ -2543,42 +2785,46 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission(".*", AccessPermission.PUSH); user.setRepositoryPermission("~ubercool/.*", AccessPermission.CLONE); - - // has PUSH access because first match is PUSH permission + + // has PUSH access because first match is PUSH permission assertTrue("user HAS a repository permission!", user.hasRepositoryPermission(personal.name)); assertTrue("user CAN NOT view!", user.canView(personal)); assertTrue("user CAN NOT clone!", user.canClone(personal)); assertTrue("user CAN NOT push!", user.canPush(personal)); - + assertFalse("user CAN create ref!", user.canCreateRef(personal)); assertFalse("user CAN delete ref!", user.canDeleteRef(personal)); assertFalse("user CAN rewind ref!", user.canRewindRef(personal)); + assertEquals("user has wrong permission!", AccessPermission.PUSH, user.getRepositoryPermission(personal).permission); + assertFalse("user CAN fork!", user.canFork(personal)); - + assertFalse("user CAN delete!", user.canDelete(personal)); assertFalse("user CAN edit!", user.canEdit(personal)); - + user.permissions.clear(); user.setRepositoryPermission("~ubercool/.*", AccessPermission.CLONE); user.setRepositoryPermission(".*", AccessPermission.PUSH); - + // has CLONE access because first match is CLONE permission assertTrue("user HAS a repository permission!", user.hasRepositoryPermission(personal.name)); assertTrue("user CAN NOT view!", user.canView(personal)); assertTrue("user CAN NOT clone!", user.canClone(personal)); assertFalse("user CAN push!", user.canPush(personal)); - + assertFalse("user CAN create ref!", user.canCreateRef(personal)); assertFalse("user CAN delete ref!", user.canDeleteRef(personal)); assertFalse("user CAN rewind ref!", user.canRewindRef(personal)); + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(personal).permission); + assertFalse("user CAN fork!", user.canFork(personal)); - + assertFalse("user CAN delete!", user.canDelete(personal)); assertFalse("user CAN edit!", user.canEdit(personal)); } - + @Test public void testExclusion() throws Exception { RepositoryModel personal = new RepositoryModel("~ubercool/_my-r/e~po.git", null, null, new Date()); @@ -2588,19 +2834,21 @@ UserModel user = new UserModel("test"); user.setRepositoryPermission("~ubercool/.*", AccessPermission.EXCLUDE); user.setRepositoryPermission(".*", AccessPermission.PUSH); - + // has EXCLUDE access because first match is EXCLUDE permission assertTrue("user DOES NOT HAVE a repository permission!", user.hasRepositoryPermission(personal.name)); assertFalse("user CAN NOT view!", user.canView(personal)); assertFalse("user CAN NOT clone!", user.canClone(personal)); assertFalse("user CAN push!", user.canPush(personal)); - + assertFalse("user CAN create ref!", user.canCreateRef(personal)); assertFalse("user CAN delete ref!", user.canDeleteRef(personal)); assertFalse("user CAN rewind ref!", user.canRewindRef(personal)); + assertEquals("user has wrong permission!", AccessPermission.EXCLUDE, user.getRepositoryPermission(personal).permission); + assertFalse("user CAN fork!", user.canFork(personal)); - + assertFalse("user CAN delete!", user.canDelete(personal)); assertFalse("user CAN edit!", user.canEdit(personal)); } @@ -2613,7 +2861,7 @@ user.teams.add(team); assertTrue("User did not inherit admin privileges", user.canAdmin()); } - + @Test public void testForkTeamInheritance() throws Exception { UserModel user = new UserModel("test"); @@ -2632,4 +2880,57 @@ assertTrue("User did not inherit create privileges", user.canCreate()); } + @Test + public void testIsFrozen() throws Exception { + RepositoryModel repo = new RepositoryModel("somerepo.git", null, null, new Date()); + repo.authorizationControl = AuthorizationControl.NAMED; + repo.accessRestriction = AccessRestrictionType.NONE; + + UserModel user = new UserModel("test"); + TeamModel team = new TeamModel("team"); + + assertEquals("user has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repo).permission); + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repo).permission); + + // freeze repo + repo.isFrozen = true; + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repo).permission); + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repo).permission); + } + + @Test + public void testIsBare() throws Exception { + RepositoryModel repo = new RepositoryModel("somerepo.git", null, null, new Date()); + repo.authorizationControl = AuthorizationControl.NAMED; + repo.accessRestriction = AccessRestrictionType.NONE; + + UserModel user = new UserModel("test"); + TeamModel team = new TeamModel("team"); + + assertEquals("user has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repo).permission); + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repo).permission); + + // set repo to have a working copy, pushes prohibited + repo.isBare = false; + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repo).permission); + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repo).permission); + } + + @Test + public void testIsMirror() throws Exception { + RepositoryModel repo = new RepositoryModel("somerepo.git", null, null, new Date()); + repo.authorizationControl = AuthorizationControl.NAMED; + repo.accessRestriction = AccessRestrictionType.NONE; + + UserModel user = new UserModel("test"); + TeamModel team = new TeamModel("team"); + + assertEquals("user has wrong permission!", AccessPermission.REWIND, user.getRepositoryPermission(repo).permission); + assertEquals("team has wrong permission!", AccessPermission.REWIND, team.getRepositoryPermission(repo).permission); + + // set repo to be a mirror, pushes prohibited + repo.isMirror = true; + assertEquals("user has wrong permission!", AccessPermission.CLONE, user.getRepositoryPermission(repo).permission); + assertEquals("team has wrong permission!", AccessPermission.CLONE, team.getRepositoryPermission(repo).permission); + } } -- Gitblit v1.9.1