From 3f5b8f5d9203aa7ffb7fbe9cdbaf9dba3da6cae6 Mon Sep 17 00:00:00 2001
From: Hybris95 <hybris_95@hotmail.com>
Date: Thu, 01 May 2014 16:14:15 -0400
Subject: [PATCH] Fixes sort, page building and search functions on "my tickets" page.

---
 src/test/java/com/gitblit/tests/PermissionsTest.java |   63 +++++++++++++++++++++++++++++--
 1 files changed, 59 insertions(+), 4 deletions(-)

diff --git a/src/test/java/com/gitblit/tests/PermissionsTest.java b/src/test/java/com/gitblit/tests/PermissionsTest.java
index 942811d..46695e9 100644
--- a/src/test/java/com/gitblit/tests/PermissionsTest.java
+++ b/src/test/java/com/gitblit/tests/PermissionsTest.java
@@ -17,7 +17,6 @@
 
 import java.util.Date;
 
-import org.junit.Assert;
 import org.junit.Test;
 
 import com.gitblit.Constants.AccessPermission;
@@ -33,7 +32,7 @@
  * @author James Moger
  *
  */
-public class PermissionsTest extends Assert {
+public class PermissionsTest extends GitblitUnitTest {
 
 	/**
 	 * Admin access rights/permissions
@@ -2509,7 +2508,7 @@
 
 	@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;
 
@@ -2531,11 +2530,30 @@
 
 		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;
 
@@ -2580,6 +2598,25 @@
 
 		assertTrue(repository.isOwner(user.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
@@ -2878,4 +2915,22 @@
 		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