Merge changes I2c8e917a,Ica9e50c0
* changes: Do not normalize URIishes Use Ignore to bypass unused test
This commit is contained in:
commit
a4c142286e
|
@ -55,6 +55,7 @@
|
|||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
public class URIishTest {
|
||||
|
@ -89,8 +90,8 @@ public void testWindowsFile2() throws Exception {
|
|||
URIish u = new URIish(str);
|
||||
assertNull(u.getScheme());
|
||||
assertFalse(u.isRemote());
|
||||
assertEquals("D:/m y", u.getPath());
|
||||
assertEquals("D:/m y", u.toString());
|
||||
assertEquals("D:\\m y", u.getPath());
|
||||
assertEquals("D:\\m y", u.toString());
|
||||
assertEquals(u, new URIish(str));
|
||||
}
|
||||
|
||||
|
@ -111,8 +112,8 @@ public void testUNC() throws Exception {
|
|||
URIish u = new URIish(str);
|
||||
assertNull(u.getScheme());
|
||||
assertFalse(u.isRemote());
|
||||
assertEquals("//some/place", u.getPath());
|
||||
assertEquals("//some/place", u.toString());
|
||||
assertEquals("\\\\some\\place", u.getPath());
|
||||
assertEquals("\\\\some\\place", u.toString());
|
||||
assertEquals(u, new URIish(str));
|
||||
}
|
||||
|
||||
|
@ -315,8 +316,8 @@ public void testGitWithUserHome() throws Exception {
|
|||
assertEquals(u, new URIish(str));
|
||||
}
|
||||
|
||||
/* Resolving ~user is beyond standard Java API and need more support
|
||||
@Test
|
||||
@Ignore("Resolving ~user is beyond standard Java API and need more support")
|
||||
public void testFileWithUserHome() throws Exception {
|
||||
final String str = "~some/p ath";
|
||||
URIish u = new URIish(str);
|
||||
|
@ -331,7 +332,6 @@ public void testFileWithUserHome() throws Exception {
|
|||
assertEquals(u.setPass(null).toPrivateString(), u.toString());
|
||||
assertEquals(u, new URIish(str));
|
||||
}
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void testFileWithNoneUserHomeWithTilde() throws Exception {
|
||||
|
|
|
@ -75,13 +75,13 @@ public class URIish implements Serializable {
|
|||
* capturing groups: the first containing the user and the second containing
|
||||
* the password
|
||||
*/
|
||||
private static final String OPT_USER_PWD_P = "(?:([^/:@]+)(?::([^/]+))?@)?";
|
||||
private static final String OPT_USER_PWD_P = "(?:([^\\\\/:@]+)(?::([^\\\\/]+))?@)?";
|
||||
|
||||
/**
|
||||
* Part of a pattern which matches the host part of URIs. Defines one
|
||||
* capturing group containing the host name.
|
||||
*/
|
||||
private static final String HOST_P = "([^/:]+)";
|
||||
private static final String HOST_P = "([^\\\\/:]+)";
|
||||
|
||||
/**
|
||||
* Part of a pattern which matches the optional port part of URIs. Defines
|
||||
|
@ -93,7 +93,7 @@ public class URIish implements Serializable {
|
|||
* Part of a pattern which matches the ~username part (e.g. /~root in
|
||||
* git://host.xyz/~root/a.git) of URIs. Defines no capturing group.
|
||||
*/
|
||||
private static final String USER_HOME_P = "(?:/~(?:[^/]+))";
|
||||
private static final String USER_HOME_P = "(?:/~(?:[^\\\\/]+))";
|
||||
|
||||
/**
|
||||
* Part of a pattern which matches the optional drive letter in paths (e.g.
|
||||
|
@ -105,13 +105,13 @@ public class URIish implements Serializable {
|
|||
* Part of a pattern which matches a relative path. Relative paths don't
|
||||
* start with slash or drive letters. Defines no capturing group.
|
||||
*/
|
||||
private static final String RELATIVE_PATH_P = "(?:(?:[^/]+/)*[^/]+/?)";
|
||||
private static final String RELATIVE_PATH_P = "(?:(?:[^\\\\/]+[\\\\/])*[^\\\\/]+[\\\\/]?)";
|
||||
|
||||
/**
|
||||
* Part of a pattern which matches a relative or absolute path. Defines no
|
||||
* capturing group.
|
||||
*/
|
||||
private static final String PATH_P = "(" + OPT_DRIVE_LETTER_P + "/?"
|
||||
private static final String PATH_P = "(" + OPT_DRIVE_LETTER_P + "[\\\\/]?"
|
||||
+ RELATIVE_PATH_P + ")";
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -129,7 +129,7 @@ public class URIish implements Serializable {
|
|||
+ OPT_PORT_P //
|
||||
+ "(" // open a catpuring group the the user-home-dir part
|
||||
+ (USER_HOME_P + "?") //
|
||||
+ "/)" //
|
||||
+ "[\\\\/])" //
|
||||
+ ")?" // close the optional group containing hostname
|
||||
+ "(.+)?" //
|
||||
+ "$");
|
||||
|
@ -139,7 +139,7 @@ public class URIish implements Serializable {
|
|||
* path (maybe even containing windows drive-letters) or a relative path.
|
||||
*/
|
||||
private static final Pattern LOCAL_FILE = Pattern.compile("^" //
|
||||
+ "(/?" + PATH_P + ")" //
|
||||
+ "([\\\\/]?" + PATH_P + ")" //
|
||||
+ "$");
|
||||
|
||||
/**
|
||||
|
@ -148,7 +148,7 @@ public class URIish implements Serializable {
|
|||
* separator, but java.io.File.toURI() constructs those URIs.
|
||||
*/
|
||||
private static final Pattern SINGLE_SLASH_FILE_URI = Pattern.compile("^" //
|
||||
+ "(file):(/(?!/)" //
|
||||
+ "(file):([\\\\/](?![\\\\/])" //
|
||||
+ PATH_P //
|
||||
+ ")$");
|
||||
|
||||
|
@ -159,7 +159,7 @@ public class URIish implements Serializable {
|
|||
+ OPT_USER_PWD_P //
|
||||
+ HOST_P //
|
||||
+ ":(" //
|
||||
+ ("(?:" + USER_HOME_P + "/)?") //
|
||||
+ ("(?:" + USER_HOME_P + "[\\\\/])?") //
|
||||
+ RELATIVE_PATH_P //
|
||||
+ ")$");
|
||||
|
||||
|
@ -168,9 +168,9 @@ public class URIish implements Serializable {
|
|||
*/
|
||||
private static final Pattern ABSOLUTE_SCP_URI = Pattern.compile("^" //
|
||||
+ OPT_USER_PWD_P //
|
||||
+ "([^/:]{2,})" //
|
||||
+ "([^\\\\/:]{2,})" //
|
||||
+ ":(" //
|
||||
+ "/" + RELATIVE_PATH_P //
|
||||
+ "[\\\\/]" + RELATIVE_PATH_P //
|
||||
+ ")$");
|
||||
|
||||
private String scheme;
|
||||
|
@ -192,7 +192,6 @@ public class URIish implements Serializable {
|
|||
* @throws URISyntaxException
|
||||
*/
|
||||
public URIish(String s) throws URISyntaxException {
|
||||
s = s.replace('\\', '/');
|
||||
Matcher matcher = SINGLE_SLASH_FILE_URI.matcher(s);
|
||||
if (matcher.matches()) {
|
||||
scheme = matcher.group(1);
|
||||
|
|
Loading…
Reference in New Issue