From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 tests/com/gitblit/tests/JGitUtilsTest.java |   99 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 81 insertions(+), 18 deletions(-)

diff --git a/tests/com/gitblit/tests/JGitUtilsTest.java b/tests/com/gitblit/tests/JGitUtilsTest.java
index 4e85b49..ce72a46 100644
--- a/tests/com/gitblit/tests/JGitUtilsTest.java
+++ b/tests/com/gitblit/tests/JGitUtilsTest.java
@@ -35,8 +35,10 @@
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.PersonIdent;
 import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.RepositoryCache;
 import org.eclipse.jgit.lib.RepositoryCache.FileKey;
 import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevTree;
 import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.FileUtils;
 import org.junit.Test;
@@ -48,6 +50,7 @@
 import com.gitblit.models.PathModel;
 import com.gitblit.models.PathModel.PathChangeModel;
 import com.gitblit.models.RefModel;
+import com.gitblit.utils.CompressionUtils;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.StringUtils;
 
@@ -66,12 +69,30 @@
 
 	@Test
 	public void testFindRepositories() {
-		List<String> list = JGitUtils.getRepositoryList(null, true, true);
+		List<String> list = JGitUtils.getRepositoryList(null, false, true, -1, null);
 		assertEquals(0, list.size());
-		list.addAll(JGitUtils.getRepositoryList(new File("DoesNotExist"), true, true));
+		list.addAll(JGitUtils.getRepositoryList(new File("DoesNotExist"), true, true, -1, null));
 		assertEquals(0, list.size());
-		list.addAll(JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, true, true));
+		list.addAll(JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, false, true, -1, null));
 		assertTrue("No repositories found in " + GitBlitSuite.REPOSITORIES, list.size() > 0);
+	}
+
+	@Test
+	public void testFindExclusions() {
+		List<String> list = JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, false, true, -1, null);
+		assertTrue("Missing jgit repository?!", list.contains("test/jgit.git"));
+
+		list = JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, false, true, -1, Arrays.asList("test/jgit\\.git"));
+		assertFalse("Repository exclusion failed!", list.contains("test/jgit.git"));
+
+		list = JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, false, true, -1, Arrays.asList("test/*"));
+		assertFalse("Repository exclusion failed!", list.contains("test/jgit.git"));
+
+		list = JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, false, true, -1, Arrays.asList(".*jgit.*"));
+		assertFalse("Repository exclusion failed!", list.contains("test/jgit.git"));
+		assertFalse("Repository exclusion failed!", list.contains("working/jgit"));
+		assertFalse("Repository exclusion failed!", list.contains("working/jgit2"));
+
 	}
 
 	@Test
@@ -97,11 +118,11 @@
 
 	@Test
 	public void testLastCommit() throws Exception {
-		assertEquals(new Date(0), JGitUtils.getLastChange(null, null));
+		assertEquals(new Date(0), JGitUtils.getLastChange(null));
 
 		Repository repository = GitBlitSuite.getHelloworldRepository();
 		assertTrue(JGitUtils.getCommit(repository, null) != null);
-		Date date = JGitUtils.getLastChange(repository, null);
+		Date date = JGitUtils.getLastChange(repository);
 		repository.close();
 		assertNotNull("Could not get last repository change date!", date);
 	}
@@ -119,10 +140,11 @@
 			assertNull(JGitUtils.getFirstCommit(repository, null));
 			assertEquals(folder.lastModified(), JGitUtils.getFirstChange(repository, null)
 					.getTime());
-			assertEquals(folder.lastModified(), JGitUtils.getLastChange(repository, null).getTime());
+			assertEquals(folder.lastModified(), JGitUtils.getLastChange(repository).getTime());
 			assertNull(JGitUtils.getCommit(repository, null));
 			repository.close();
-			assertTrue(GitBlit.self().deleteRepository(repositoryName));
+			RepositoryCache.close(repository);
+			FileUtils.delete(repository.getDirectory(), FileUtils.RECURSIVE);
 		}
 	}
 
@@ -190,12 +212,12 @@
 		}
 		repository.close();
 
-		repository = GitBlitSuite.getBluezGnomeRepository();
+		repository = GitBlitSuite.getGitectiveRepository();
 		for (RefModel model : JGitUtils.getTags(repository, true, -1)) {
-			if (model.getObjectId().getName().equals("728643ec0c438c77e182898c2f2967dbfdc231c8")) {
+			if (model.getObjectId().getName().equals("035254295a9bba11f72b1f9d6791a6b957abee7b")) {
 				assertFalse(model.isAnnotatedTag());
-				assertTrue(model.getAuthorIdent().getEmailAddress().equals("marcel@holtmann.org"));
-				assertEquals("Update changelog and bump version number\n", model.getFullMessage());
+				assertTrue(model.getAuthorIdent().getEmailAddress().equals("kevinsawicki@gmail.com"));
+				assertEquals("Add scm and issue tracker elements to pom.xml\n", model.getFullMessage());
 			}
 		}
 		repository.close();
@@ -212,19 +234,60 @@
 		assertEquals("183474d554e6f68478a02d9d7888b67a9338cdff", list.get(0).notesRef
 				.getReferencedObjectId().getName());
 	}
+	
+	@Test
+	public void testRelinkHEAD() throws Exception {
+		Repository repository = GitBlitSuite.getJGitRepository();
+		// confirm HEAD is master
+		String currentRef = JGitUtils.getHEADRef(repository);
+		assertEquals("refs/heads/master", currentRef);
+		List<String> availableHeads = JGitUtils.getAvailableHeadTargets(repository);
+		assertTrue(availableHeads.size() > 0);
+		
+		// set HEAD to stable-1.2
+		JGitUtils.setHEADtoRef(repository, "refs/heads/stable-1.2");
+		currentRef = JGitUtils.getHEADRef(repository);
+		assertEquals("refs/heads/stable-1.2", currentRef);
+
+		// restore HEAD to master
+		JGitUtils.setHEADtoRef(repository, "refs/heads/master");
+		currentRef = JGitUtils.getHEADRef(repository);
+		assertEquals("refs/heads/master", currentRef);
+		
+		repository.close();
+	}
+
+	@Test
+	public void testRelinkBranch() throws Exception {
+		Repository repository = GitBlitSuite.getJGitRepository();
+		
+		// create/set the branch
+		JGitUtils.setBranchRef(repository, "refs/heads/reftest", "3b358ce514ec655d3ff67de1430994d8428cdb04");
+		assertEquals(1, JGitUtils.getAllRefs(repository).get(ObjectId.fromString("3b358ce514ec655d3ff67de1430994d8428cdb04")).size());
+		assertEquals(null, JGitUtils.getAllRefs(repository).get(ObjectId.fromString("755dfdb40948f5c1ec79e06bde3b0a78c352f27f")));
+		
+		// reset the branch
+		JGitUtils.setBranchRef(repository, "refs/heads/reftest", "755dfdb40948f5c1ec79e06bde3b0a78c352f27f");
+		assertEquals(null, JGitUtils.getAllRefs(repository).get(ObjectId.fromString("3b358ce514ec655d3ff67de1430994d8428cdb04")));
+		assertEquals(1, JGitUtils.getAllRefs(repository).get(ObjectId.fromString("755dfdb40948f5c1ec79e06bde3b0a78c352f27f")).size());
+
+		// delete the branch
+		assertTrue(JGitUtils.deleteBranchRef(repository, "refs/heads/reftest"));
+		repository.close();
+	}
 
 	@Test
 	public void testCreateOrphanedBranch() throws Exception {
 		Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, "orphantest");
 		assertTrue(JGitUtils.createOrphanBranch(repository,
-				"x" + Long.toHexString(System.currentTimeMillis()).toUpperCase()));
-		FileUtils.delete(repository.getDirectory(), FileUtils.RECURSIVE);
+				"x" + Long.toHexString(System.currentTimeMillis()).toUpperCase(), null));
+		 FileUtils.delete(repository.getDirectory(), FileUtils.RECURSIVE);
 	}
 
 	@Test
 	public void testStringContent() throws Exception {
 		Repository repository = GitBlitSuite.getHelloworldRepository();
-		String contentA = JGitUtils.getStringContent(repository, null, "java.java");
+		String contentA = JGitUtils.getStringContent(repository, (RevTree) null, "java.java");
 		RevCommit commit = JGitUtils.getCommit(repository, Constants.HEAD);
 		String contentB = JGitUtils.getStringContent(repository, commit.getTree(), "java.java");
 		String contentC = JGitUtils.getStringContent(repository, commit.getTree(), "missing.txt");
@@ -302,7 +365,7 @@
 		assertEquals("-rwxr-xr-x",
 				JGitUtils.getPermissionsFromMode(FileMode.EXECUTABLE_FILE.getBits()));
 		assertEquals("symlink", JGitUtils.getPermissionsFromMode(FileMode.SYMLINK.getBits()));
-		assertEquals("gitlink", JGitUtils.getPermissionsFromMode(FileMode.GITLINK.getBits()));
+		assertEquals("submodule", JGitUtils.getPermissionsFromMode(FileMode.GITLINK.getBits()));
 		assertEquals("missing", JGitUtils.getPermissionsFromMode(FileMode.MISSING.getBits()));
 	}
 
@@ -384,16 +447,16 @@
 
 	@Test
 	public void testZip() throws Exception {
-		assertFalse(JGitUtils.zip(null, null, null, null));
+		assertFalse(CompressionUtils.zip(null, null, null, null));
 		Repository repository = GitBlitSuite.getHelloworldRepository();
 		File zipFileA = new File(GitBlitSuite.REPOSITORIES, "helloworld.zip");
 		FileOutputStream fosA = new FileOutputStream(zipFileA);
-		boolean successA = JGitUtils.zip(repository, null, Constants.HEAD, fosA);
+		boolean successA = CompressionUtils.zip(repository, null, Constants.HEAD, fosA);
 		fosA.close();
 
 		File zipFileB = new File(GitBlitSuite.REPOSITORIES, "helloworld-java.zip");
 		FileOutputStream fosB = new FileOutputStream(zipFileB);
-		boolean successB = JGitUtils.zip(repository, "java.java", Constants.HEAD, fosB);
+		boolean successB = CompressionUtils.zip(repository, "java.java", Constants.HEAD, fosB);
 		fosB.close();
 
 		repository.close();

--
Gitblit v1.9.1