Allows a space in a -selenium argument to JUnitShell. (allows an argument of the form -selenium "<host>:4444/*custom firefox3" ) Strip off quotes before passing a quoted argument from JUnitShell.synthesizeArgs() Patch by: zundel Review by: jgw, scottb git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3093 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/junit/JUnitShell.java b/user/src/com/google/gwt/junit/JUnitShell.java index 09d2bbe..a9161e5 100644 --- a/user/src/com/google/gwt/junit/JUnitShell.java +++ b/user/src/com/google/gwt/junit/JUnitShell.java
@@ -710,8 +710,17 @@ // Pattern pattern = Pattern.compile("[^\\s\"]+|\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""); Matcher matcher = pattern.matcher(args); + Pattern quotedArgsPattern = Pattern.compile("^([\"'])(.*)([\"'])$"); + while (matcher.find()) { - argList.add(matcher.group()); + // Strip leading and trailing quotes from the arg + String arg = matcher.group(); + Matcher qmatcher = quotedArgsPattern.matcher(arg); + if (qmatcher.matches()) { + argList.add(qmatcher.group(2)); + } else { + argList.add(arg); + } } }
diff --git a/user/src/com/google/gwt/junit/RunStyleSelenium.java b/user/src/com/google/gwt/junit/RunStyleSelenium.java index c8d8baf..211c093 100644 --- a/user/src/com/google/gwt/junit/RunStyleSelenium.java +++ b/user/src/com/google/gwt/junit/RunStyleSelenium.java
@@ -68,12 +68,12 @@ public static RunStyle create(JUnitShell shell, String[] targetsIn) { RCSelenium targets[] = new RCSelenium[targetsIn.length]; - Pattern pattern = Pattern.compile("([\\w\\.-]+):([\\d]+)/([\\w\\*]+)"); + Pattern pattern = Pattern.compile("([\\w\\.-]+):([\\d]+)/([\\w\\s\\*]+)"); for (int i = 0; i < targets.length; ++i) { Matcher matcher = pattern.matcher(targetsIn[i]); if (!matcher.matches()) { throw new JUnitFatalLaunchException("Unable to parse Selenium target " - + targets[i] + " (expected format is [host]:[port]/[browser])"); + + targetsIn[i] + " (expected format is [host]:[port]/[browser])"); } RCSelenium instance = new RCSelenium(matcher.group(3), matcher.group(1), Integer.parseInt(matcher.group(2)));