diff options
Diffstat (limited to 'org.eclipse.jgit.test/tst')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefTest.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefTest.java index 26c4d12cc0..f2ed684511 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefTest.java @@ -58,9 +58,11 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Map; +import java.util.TreeSet; import org.eclipse.jgit.lib.Ref.Storage; import org.eclipse.jgit.lib.RefUpdate.Result; +import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.test.resources.SampleDataRepositoryTestCase; import org.junit.Test; @@ -83,6 +85,50 @@ public class RefTest extends SampleDataRepositoryTestCase { } @Test + public void testRemoteNames() throws Exception { + FileBasedConfig config = db.getConfig(); + config.setBoolean(ConfigConstants.CONFIG_REMOTE_SECTION, + "origin", "dummy", true); + config.setBoolean(ConfigConstants.CONFIG_REMOTE_SECTION, + "ab/c", "dummy", true); + config.save(); + assertEquals("[ab/c, origin]", + new TreeSet<String>(db.getRemoteNames()).toString()); + + // one-level deep remote branch + assertEquals("master", + db.shortenRemoteBranchName("refs/remotes/origin/master")); + assertEquals("origin", db.getRemoteName("refs/remotes/origin/master")); + + // two-level deep remote branch + assertEquals("masta/r", + db.shortenRemoteBranchName("refs/remotes/origin/masta/r")); + assertEquals("origin", db.getRemoteName("refs/remotes/origin/masta/r")); + + // Remote with slash and one-level deep branch name + assertEquals("xmaster", + db.shortenRemoteBranchName("refs/remotes/ab/c/xmaster")); + assertEquals("ab/c", db.getRemoteName("refs/remotes/ab/c/xmaster")); + + // Remote with slash and two-level deep branch name + assertEquals("xmasta/r", + db.shortenRemoteBranchName("refs/remotes/ab/c/xmasta/r")); + assertEquals("ab/c", db.getRemoteName("refs/remotes/ab/c/xmasta/r")); + + // no such remote + assertNull(db.getRemoteName("refs/remotes/nosuchremote/x")); + assertNull(db.shortenRemoteBranchName("refs/remotes/nosuchremote/x")); + + // no such remote too, no branch name either + assertNull(db.getRemoteName("refs/remotes/abranch")); + assertNull(db.shortenRemoteBranchName("refs/remotes/abranch")); + + // // local branch + assertNull(db.getRemoteName("refs/heads/abranch")); + assertNull(db.shortenRemoteBranchName("refs/heads/abranch")); + } + + @Test public void testReadAllIncludingSymrefs() throws Exception { ObjectId masterId = db.resolve("refs/heads/master"); RefUpdate updateRef = db.updateRef("refs/remotes/origin/master"); |