summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst
diff options
context:
space:
mode:
authorMarc Strapetz <marc.strapetz@syntevo.com>2015-10-21 12:03:53 +0200
committerMarc Strapetz <marc.strapetz@syntevo.com>2015-10-21 12:05:03 +0200
commitd29b2b6762a96d8ecd20bfc8855b3f9dfdfcce67 (patch)
treef9b3223dd5ac1b69b4f9bf357343af7ddc204836 /org.eclipse.jgit.test/tst
parentce525a0a62acdff11d004d50b395286c4681f7b8 (diff)
downloadjgit-d29b2b6762a96d8ecd20bfc8855b3f9dfdfcce67.tar.gz
jgit-d29b2b6762a96d8ecd20bfc8855b3f9dfdfcce67.zip
Refspec: loosen restrictions on wildcard "*"
Since Git 2.6 wildcard restrictions for refspecs have been loosened: refspecs like "refs/heads/*foo:refs/heads/foo*" are valid now. See Git commit 8d3981ccbed9fc211b4e67105015179d9d2a5692 Change-Id: Icb78afbd282c425173b3a7bc10eadc4015689bb8 Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
Diffstat (limited to 'org.eclipse.jgit.test/tst')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RefSpecTest.java50
1 files changed, 35 insertions, 15 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RefSpecTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RefSpecTest.java
index 3f5fcbbf07..4f833509d9 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RefSpecTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RefSpecTest.java
@@ -341,6 +341,41 @@ public class RefSpecTest {
}
@Test
+ public void testWildcardAfterText1() {
+ RefSpec a = new RefSpec("refs/heads/*/for-linus:refs/remotes/mine/*-blah");
+ assertTrue(a.isWildcard());
+ assertTrue(a.matchDestination("refs/remotes/mine/x-blah"));
+ assertTrue(a.matchDestination("refs/remotes/mine/foo-blah"));
+ assertTrue(a.matchDestination("refs/remotes/mine/foo/x-blah"));
+ assertFalse(a.matchDestination("refs/remotes/origin/foo/x-blah"));
+
+ RefSpec b = a.expandFromSource("refs/heads/foo/for-linus");
+ assertEquals("refs/remotes/mine/foo-blah", b.getDestination());
+ RefSpec c = a.expandFromDestination("refs/remotes/mine/foo-blah");
+ assertEquals("refs/heads/foo/for-linus", c.getSource());
+ }
+
+ @Test
+ public void testWildcardAfterText2() {
+ RefSpec a = new RefSpec("refs/heads*/for-linus:refs/remotes/mine/*");
+ assertTrue(a.isWildcard());
+ assertTrue(a.matchSource("refs/headsx/for-linus"));
+ assertTrue(a.matchSource("refs/headsfoo/for-linus"));
+ assertTrue(a.matchSource("refs/headsx/foo/for-linus"));
+ assertFalse(a.matchSource("refs/headx/for-linus"));
+
+ RefSpec b = a.expandFromSource("refs/headsx/for-linus");
+ assertEquals("refs/remotes/mine/x", b.getDestination());
+ RefSpec c = a.expandFromDestination("refs/remotes/mine/x");
+ assertEquals("refs/headsx/for-linus", c.getSource());
+
+ RefSpec d = a.expandFromSource("refs/headsx/foo/for-linus");
+ assertEquals("refs/remotes/mine/x/foo", d.getDestination());
+ RefSpec e = a.expandFromDestination("refs/remotes/mine/x/foo");
+ assertEquals("refs/headsx/foo/for-linus", e.getSource());
+ }
+
+ @Test
public void testWildcardMirror() {
RefSpec a = new RefSpec("*:*");
assertTrue(a.isWildcard());
@@ -404,21 +439,6 @@ public class RefSpecTest {
}
@Test(expected = IllegalArgumentException.class)
- public void invalidWhenWildcardAfterText() {
- assertNotNull(new RefSpec("refs/heads/wrong*:refs/heads/right/*"));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void invalidWhenWildcardBeforeText() {
- assertNotNull(new RefSpec("*wrong:right/*"));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void invalidWhenWildcardBeforeTextAtEnd() {
- assertNotNull(new RefSpec("refs/heads/*wrong:right/*"));
- }
-
- @Test(expected = IllegalArgumentException.class)
public void invalidSourceDoubleSlashes() {
assertNotNull(new RefSpec("refs/heads//wrong"));
}