James Moger
2012-10-13 c658df9e87d65b08d5482cf04489cb0532ff83dd
tests/com/gitblit/tests/PermissionsTest.java
@@ -2329,6 +2329,7 @@
      UserModel user = new UserModel("test");
      repository.owner = user.username;
      assertFalse("user SHOULD NOT HAVE a repository permission!", user.hasRepositoryPermission(repository.name));
      assertTrue("owner CAN NOT view!", user.canView(repository));
      assertTrue("owner CAN NOT clone!", user.canClone(repository));
      assertTrue("owner CAN NOT push!", user.canPush(repository));
@@ -2352,6 +2353,7 @@
      UserModel user = new UserModel("test");
      repository.owner = user.username;
      assertFalse("user SHOULD NOT HAVE a repository permission!", user.hasRepositoryPermission(repository.name));
      assertTrue("user CAN NOT view!", user.canView(repository));
      assertTrue("user CAN NOT clone!", user.canClone(repository));
      assertTrue("user CAN NOT push!", user.canPush(repository));
@@ -2375,6 +2377,7 @@
      UserModel user = new UserModel("visitor");
      repository.owner = "test";
      assertFalse("user HAS a repository permission!", user.hasRepositoryPermission(repository.name));
      assertFalse("user CAN view!", user.canView(repository));
      assertFalse("user CAN clone!", user.canClone(repository));
      assertFalse("user CAN push!", user.canPush(repository));
@@ -2388,4 +2391,56 @@
      assertFalse("user CAN delete!", user.canDelete(repository));
      assertFalse("user CAN edit!", user.canEdit(repository));
   }
   @Test
   public void testWildcardMatching() throws Exception {
      RepositoryModel repository = new RepositoryModel("ubercool/_my-r/e~po.git", null, null, new Date());
      repository.authorizationControl = AuthorizationControl.NAMED;
      repository.accessRestriction = AccessRestrictionType.VIEW;
      UserModel user = new UserModel("test");
      user.setRepositoryPermission("ubercool/[A-Za-z0-9-~_\\./]+", AccessPermission.CLONE);
      assertTrue("user DOES NOT HAVE a repository permission!", user.hasRepositoryPermission(repository.name));
      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));
      assertFalse("user CAN fork!", user.canFork(repository));
      assertFalse("user CAN delete!", user.canDelete(repository));
      assertFalse("user CAN edit!", user.canEdit(repository));
   }
   @Test
   public void testAdminTeamInheritance() throws Exception {
      UserModel user = new UserModel("test");
      TeamModel team = new TeamModel("team");
      team.canAdmin = true;
      user.teams.add(team);
      assertTrue("User did not inherit admin privileges", user.canAdmin());
   }
   @Test
   public void testForkTeamInheritance() throws Exception {
      UserModel user = new UserModel("test");
      TeamModel team = new TeamModel("team");
      team.canFork = true;
      user.teams.add(team);
      assertTrue("User did not inherit fork privileges", user.canFork());
   }
   @Test
   public void testCreateTeamInheritance() throws Exception {
      UserModel user = new UserModel("test");
      TeamModel team = new TeamModel("team");
      team.canCreate= true;
      user.teams.add(team);
      assertTrue("User did not inherit create privileges", user.canCreate());
   }
}