Index: lib/src/runner/browser/server.dart |
diff --git a/lib/src/runner/browser/server.dart b/lib/src/runner/browser/server.dart |
index 716da34b9ccd2dedd404f45ae82ac0328a017aea..e4b9d853c625d6b1061107fe6dec110654e04388 100644 |
--- a/lib/src/runner/browser/server.dart |
+++ b/lib/src/runner/browser/server.dart |
@@ -36,6 +36,7 @@ import 'dartium.dart'; |
import 'firefox.dart'; |
import 'internet_explorer.dart'; |
import 'phantom_js.dart'; |
+import 'polymer.dart'; |
import 'safari.dart'; |
/// A server that serves JS-compiled tests to browsers. |
@@ -263,8 +264,21 @@ void main() { |
if (_pubServeUrl != null) { |
var suitePrefix = p.withoutExtension( |
p.relative(path, from: p.join(_root, 'test'))); |
- var jsUrl = _pubServeUrl.resolve( |
+ |
+ var jsUrl; |
+ // Polymer generates a bootstrap entrypoint that wraps the entrypoint we |
+ // see on disk, and modifies the HTML file to point to the bootstrap |
+ // instead. To make sure we get the right source maps and wait for the |
+ // right file to compile, we have some Polymer-specific logic here to load |
+ // the boostrap instead of the unwrapped file. |
+ if (isPolymerEntrypoint(path)) { |
+ jsUrl = _pubServeUrl.resolve( |
+ "$suitePrefix.html.polymer.bootstrap.dart.browser_test.dart.js"); |
+ } else { |
+ jsUrl = _pubServeUrl.resolve( |
'$suitePrefix.dart.browser_test.dart.js'); |
+ } |
+ |
await _pubServeSuite(path, jsUrl); |
suiteUrl = _pubServeUrl.resolveUri(p.toUri('$suitePrefix.html')); |
} else { |