Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Unified Diff: lib/src/runner/browser/server.dart

Issue 1080103002: Add support for running tests on Dartium. (Closed) Base URL: git@github.com:dart-lang/test@wip.dartium
Patch Set: . Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/src/runner/browser/server.dart
diff --git a/lib/src/runner/browser/server.dart b/lib/src/runner/browser/server.dart
index 1c2ee38ead6e8f418b1373894b3b58dde7b9e145..125c6ec1ee9f9c2c407ba110c2a0ea88db679a3f 100644
--- a/lib/src/runner/browser/server.dart
+++ b/lib/src/runner/browser/server.dart
@@ -26,6 +26,7 @@ import 'browser.dart';
import 'browser_manager.dart';
import 'compiler_pool.dart';
import 'chrome.dart';
+import 'dartium.dart';
import 'firefox.dart';
/// A server that serves JS-compiled tests to browsers.
@@ -179,12 +180,24 @@ class BrowserServer {
};
}
- /// A handler that serves wrapper HTML to bootstrap tests.
+ /// A handler that serves wrapper files used to bootstrap tests.
shelf.Response _wrapperHandler(shelf.Request request) {
var path = p.fromUri(shelfUrl(request));
var withoutExtensions = p.withoutExtension(p.withoutExtension(path));
var base = p.basename(withoutExtensions);
+ if (path.endsWith(".browser_test.dart")) {
+ return new shelf.Response.ok('''
+import "package:test/src/runner/browser/iframe_listener.dart";
+
+import "$base" as test;
+
+void main() {
+ IframeListener.start(() => test.main);
+}
+''', headers: {'Content-Type': 'application/dart'});
+ }
+
if (path.endsWith(".browser_test.html")) {
// TODO(nweiz): support user-authored HTML files.
return new shelf.Response.ok('''
@@ -192,9 +205,10 @@ class BrowserServer {
<html>
<head>
<title>${HTML_ESCAPE.convert(base)}.dart Test</title>
- <script type="application/javascript"
- src="${HTML_ESCAPE.convert(base)}.browser_test.dart.js">
+ <script type="application/dart"
+ src="${HTML_ESCAPE.convert(base)}.browser_test.dart">
</script>
+ <script src="packages/browser/dart.js"></script>
</head>
</html>
''', headers: {'Content-Type': 'text/html'});
@@ -221,7 +235,8 @@ class BrowserServer {
_pubServeUrl.resolve('$suitePrefix.html'));
}
- return _compileSuite(path).then((_) {
+ return new Future.sync(() => browser.isJS ? _compileSuite(path) : null)
+ .then((_) {
if (_closed) return null;
return url.resolveUri(
p.toUri(p.relative(path, from: _root) + ".browser_test.html"));
@@ -233,7 +248,7 @@ class BrowserServer {
return _browserManagerFor(browser).then((browserManager) {
if (_closed) return null;
return browserManager.loadSuite(path, suiteUrl);
- });
+ }).then((suite) => suite.change(platform: browser.name));
});
}
@@ -333,6 +348,7 @@ class BrowserServer {
/// Starts the browser identified by [browser] and has it load [url].
Browser _newBrowser(Uri url, TestPlatform browser) {
switch (browser) {
+ case TestPlatform.dartium: return new Dartium(url);
case TestPlatform.chrome: return new Chrome(url);
case TestPlatform.firefox: return new Firefox(url);
default:

Powered by Google App Engine
This is Rietveld 408576698