James Moger
2014-06-09 ca4d98678c20e4033fdaca09ecbbf0f5952e0b84
src/test/java/com/gitblit/tests/JGitUtilsTest.java
@@ -15,12 +15,6 @@
 */
package com.gitblit.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
@@ -37,6 +31,10 @@
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryCache;
import org.eclipse.jgit.lib.RepositoryCache.FileKey;
import org.eclipse.jgit.revplot.PlotCommit;
import org.eclipse.jgit.revplot.PlotCommitList;
import org.eclipse.jgit.revplot.PlotLane;
import org.eclipse.jgit.revplot.PlotWalk;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.util.FS;
@@ -44,8 +42,6 @@
import org.junit.Test;
import com.gitblit.Constants.SearchType;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.models.GitNote;
import com.gitblit.models.PathModel;
import com.gitblit.models.PathModel.PathChangeModel;
@@ -55,7 +51,7 @@
import com.gitblit.utils.JnaUtils;
import com.gitblit.utils.StringUtils;
public class JGitUtilsTest {
public class JGitUtilsTest extends GitblitUnitTest {
   @Test
   public void testDisplayName() throws Exception {
@@ -224,7 +220,7 @@
         String repositoryAll = "NewTestRepositoryAll.git";
         String repositoryUmask = "NewTestRepositoryUmask.git";
         String sgidParent = "sgid";
         File parent = new File(GitBlitSuite.REPOSITORIES, sgidParent);
         File folder = null;
         boolean parentExisted = parent.exists();
@@ -239,21 +235,21 @@
            Repository repository = JGitUtils.createRepository(parent, repositoryAll, "all");
            folder = FileKey.resolve(new File(parent, repositoryAll), FS.DETECTED);
            assertNotNull(repository);
            assertEquals("2", repository.getConfig().getString("core", null, "sharedRepository"));
            assertTrue(folder.exists());
            mode = JnaUtils.getFilemode(folder);
            assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);
            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/HEAD");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
            assertEquals(JnaUtils.S_IROTH, mode & JnaUtils.S_IRWXO);
            mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
            assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
            assertEquals(JnaUtils.S_IROTH, mode & JnaUtils.S_IRWXO);
            repository.close();
            RepositoryCache.close(repository);
@@ -262,13 +258,13 @@
            repository = JGitUtils.createRepository(parent, repositoryUmask, "umask");
            folder = FileKey.resolve(new File(parent, repositoryUmask), FS.DETECTED);
            assertNotNull(repository);
            assertEquals(null, repository.getConfig().getString("core", null, "sharedRepository"));
            assertTrue(folder.exists());
            mode = JnaUtils.getFilemode(folder);
            assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);
            repository.close();
            RepositoryCache.close(repository);
         }
@@ -368,7 +364,7 @@
      assertEquals("183474d554e6f68478a02d9d7888b67a9338cdff", list.get(0).notesRef
            .getReferencedObjectId().getName());
   }
   @Test
   public void testRelinkHEAD() throws Exception {
      Repository repository = GitBlitSuite.getJGitRepository();
@@ -377,7 +373,7 @@
      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);
@@ -387,19 +383,19 @@
      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")));
@@ -424,6 +420,11 @@
      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");
      assertTrue("ContentA is null!", contentA != null && contentA.length() > 0);
      assertTrue("ContentB is null!", contentB != null && contentB.length() > 0);
      assertTrue(contentA.equals(contentB));
      String contentC = JGitUtils.getStringContent(repository, commit.getTree(), "missing.txt");
      // manually construct a blob, calculate the hash, lookup the hash in git
@@ -433,9 +434,6 @@
      String sha1 = StringUtils.getSHA1(sb.toString());
      String contentD = JGitUtils.getStringContent(repository, sha1);
      repository.close();
      assertTrue("ContentA is null!", contentA != null && contentA.length() > 0);
      assertTrue("ContentB is null!", contentB != null && contentB.length() > 0);
      assertTrue(contentA.equals(contentB));
      assertNull(contentC);
      assertTrue(contentA.equals(contentD));
   }
@@ -480,14 +478,11 @@
   @Test
   public void testDocuments() throws Exception {
      Repository repository = GitBlitSuite.getTicgitRepository();
      List<String> extensions = GitBlit.getStrings(Keys.web.markdownExtensions);
      List<String> extensions = Arrays.asList(new String[] { ".mkd", ".md" });
      List<PathModel> markdownDocs = JGitUtils.getDocuments(repository, extensions);
      List<PathModel> markdownDocs2 = JGitUtils.getDocuments(repository,
            Arrays.asList(new String[] { ".mkd", ".md" }));
      List<PathModel> allFiles = JGitUtils.getDocuments(repository, null);
      repository.close();
      assertTrue(markdownDocs.size() > 0);
      assertTrue(markdownDocs2.size() > 0);
      assertTrue(allFiles.size() > markdownDocs.size());
   }
@@ -525,7 +520,7 @@
      // grab the commits since 2008-07-15
      commits = JGitUtils.getRevLog(repository, null,
            new SimpleDateFormat("yyyy-MM-dd").parse("2008-07-15"));
      assertEquals(12, commits.size());
      assertEquals(19, commits.size());
      repository.close();
   }
@@ -603,4 +598,16 @@
      zipFileB.delete();
   }
   @Test
   public void testPlots() throws Exception {
      Repository repository = GitBlitSuite.getTicgitRepository();
      PlotWalk pw = new PlotWalk(repository);
      PlotCommitList<PlotLane> commits = new PlotCommitList<PlotLane>();
      commits.source(pw);
      commits.fillTo(25);
      for (PlotCommit<PlotLane> commit : commits) {
         System.out.println(commit);
      }
      repository.close();
   }
}