From eecaad8b8e2c447429c31a01d49260ddd6b4ee03 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 16 Apr 2016 17:35:32 -0400 Subject: [PATCH] Proof of concept #1026 --- src/test/java/com/gitblit/tests/JGitUtilsTest.java | 82 ++++++++++++++++++++++++---------------- 1 files changed, 49 insertions(+), 33 deletions(-) diff --git a/src/test/java/com/gitblit/tests/JGitUtilsTest.java b/src/test/java/com/gitblit/tests/JGitUtilsTest.java index 463c0a8..c273e86 100644 --- a/src/test/java/com/gitblit/tests/JGitUtilsTest.java +++ b/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)); } @@ -478,16 +476,22 @@ } @Test + public void testFilesInPath2() throws Exception { + assertEquals(0, JGitUtils.getFilesInPath2(null, null, null).size()); + Repository repository = GitBlitSuite.getHelloworldRepository(); + List<PathModel> files = JGitUtils.getFilesInPath2(repository, null, null); + repository.close(); + assertTrue(files.size() > 10); + } + + @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()); } @@ -581,16 +585,16 @@ @Test public void testZip() throws Exception { - assertFalse(CompressionUtils.zip(null, null, null, null)); + assertFalse(CompressionUtils.zip(null, null, null, null, null)); Repository repository = GitBlitSuite.getHelloworldRepository(); File zipFileA = new File(GitBlitSuite.REPOSITORIES, "helloworld.zip"); FileOutputStream fosA = new FileOutputStream(zipFileA); - boolean successA = CompressionUtils.zip(repository, null, Constants.HEAD, fosA); + boolean successA = CompressionUtils.zip(repository, null, null, Constants.HEAD, fosA); fosA.close(); File zipFileB = new File(GitBlitSuite.REPOSITORIES, "helloworld-java.zip"); FileOutputStream fosB = new FileOutputStream(zipFileB); - boolean successB = CompressionUtils.zip(repository, "java.java", Constants.HEAD, fosB); + boolean successB = CompressionUtils.zip(repository, null, "java.java", Constants.HEAD, fosB); fosB.close(); repository.close(); @@ -603,4 +607,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(); + } } \ No newline at end of file -- Gitblit v1.9.1