Index: tools/testing/dart/test_suite.dart |
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart |
index 41221ac32ba7943a100317fe6b9a896df0d2403e..7ce87ab9ff48b1a3ef3e3404f107e394f62408df 100644 |
--- a/tools/testing/dart/test_suite.dart |
+++ b/tools/testing/dart/test_suite.dart |
@@ -1101,27 +1101,22 @@ class StandardTestSuite extends TestSuite { |
exit(1); |
} |
- String _getUriForBrowserTest(TestInformation info, |
- String pathComponent, |
- subtestNames, |
- subtestIndex) { |
- // Note: If we run test.py with the "--list" option, no http servers |
- // will be started. So we use PORT/CROSS_ORIGIN_PORT instead of real ports. |
- var serverPort = "PORT"; |
- var crossOriginPort = "CROSS_ORIGIN_PORT"; |
- if (!configuration['list']) { |
- assert(configuration.containsKey('_servers_')); |
- serverPort = configuration['_servers_'].port; |
- crossOriginPort = configuration['_servers_'].crossOriginPort; |
+ Uri _getUriForBrowserTest(String pathComponent, String subtestName) { |
+ if (configuration['list']) { |
ricow1
2014/11/10 13:55:24
maybe copy over the existing comment and change th
|
+ return Uri.parse('http://listing_the_tests_only'); |
} |
- |
- var localIp = configuration['local_ip']; |
- var url= 'http://$localIp:$serverPort$pathComponent' |
- '?crossOriginPort=$crossOriginPort'; |
- if (info.optionsFromFile['isMultiHtmlTest'] && subtestNames.length > 0) { |
- url= '${url}&group=${subtestNames[subtestIndex]}'; |
+ assert(configuration.containsKey('_servers_')); |
+ int serverPort = configuration['_servers_'].port; |
+ int crossOriginPort = configuration['_servers_'].crossOriginPort; |
+ Map parameters = {'crossOriginPort': crossOriginPort.toString()}; |
+ if (subtestName != null) { |
+ parameters['group'] = subtestName; |
} |
- return url; |
+ return new Uri(scheme: 'http', |
+ host: configuration['local_ip'], |
+ port: serverPort, |
+ path: pathComponent, |
+ queryParameters: parameters); |
} |
void _createWrapperFile(String dartWrapperFilename, |
@@ -1316,15 +1311,16 @@ class StandardTestSuite extends TestSuite { |
// Variables for browser multi-tests. |
- List<String> subtestNames = info.optionsFromFile['subtestNames']; |
- int subtestIndex = 0; |
+ bool multitest = info.optionsFromFile['isMultiHtmlTest']; |
+ List<String> subtestNames = |
+ multitest ? info.optionsFromFile['subtestNames'] : [null]; |
+ for (String subtestName in subtestNames) { |
// Construct the command that executes the browser test |
- do { |
List<Command> commandSet = new List<Command>.from(commands); |
var htmlPath_subtest = _createUrlPathFromFile(new Path(htmlPath)); |
- var fullHtmlPath = _getUriForBrowserTest( |
- info, htmlPath_subtest, subtestNames, subtestIndex); |
+ var fullHtmlPath = |
+ _getUriForBrowserTest(htmlPath_subtest, subtestName).toString(); |
List<String> args = <String>[]; |
@@ -1360,32 +1356,19 @@ class StandardTestSuite extends TestSuite { |
} |
// Create BrowserTestCase and queue it. |
- String testDisplayName = '$suiteName/$testName'; |
- var testCase; |
- if (info.optionsFromFile['isMultiHtmlTest']) { |
- testDisplayName = '$testDisplayName/${subtestNames[subtestIndex]}'; |
- testCase = new BrowserTestCase( |
- testDisplayName, |
- commandSet, |
- configuration, |
- expectations['$testName/${subtestNames[subtestIndex]}'], |
- info, |
- isNegative(info), |
- fullHtmlPath); |
- } else { |
- testCase = new BrowserTestCase( |
- testDisplayName, |
+ var fullTestName = multitest ? '$testName/$subtestName' : testName; |
+ var expectation = multitest ? expectations[fullTestName] : expectations; |
+ var testCase = new BrowserTestCase( |
+ '$suiteName/$fullTestName', |
commandSet, |
configuration, |
- expectations, |
+ expectation, |
info, |
isNegative(info), |
fullHtmlPath); |
- } |
enqueueNewTestCase(testCase); |
- subtestIndex++; |
- } while (subtestIndex < subtestNames.length); |
+ } |
} |
void enqueueHtmlTest( |
@@ -1442,7 +1425,7 @@ class StandardTestSuite extends TestSuite { |
new File.fromUri(htmlFile).writeAsStringSync(contents); |
var htmlPath = _createUrlPathFromFile(new Path(htmlFile.toFilePath())); |
- var fullHtmlPath = _getUriForBrowserTest(info, htmlPath, null, null); |
+ var fullHtmlPath = _getUriForBrowserTest(htmlPath, null).toString(); |
var commands = [ |
CommandBuilder.instance.getBrowserHtmlTestCommand( |
runtime, |