Index: web_components/lib/build/test_compatibility.dart |
diff --git a/web_components/lib/build/test_compatibility.dart b/web_components/lib/build/test_compatibility.dart |
deleted file mode 100644 |
index a25d965b510a72f1b03c8abab069962c3e0b3a43..0000000000000000000000000000000000000000 |
--- a/web_components/lib/build/test_compatibility.dart |
+++ /dev/null |
@@ -1,79 +0,0 @@ |
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-/// Some Transformers to maintain compatibility with the new `test` package, |
-/// since it doesn't use normal dart script tags in html. We get around this by |
-/// using two transformers: |
-/// - A transformer to convert <lint rel="x-dart-test"> intro dart script tags |
-/// so that they can be processed by the rest of the transformers normally. |
-/// - A second transformer to convert the output back, so that the `test` |
-/// package can find a <link rel="x-dart-test"> tag after all the |
-/// transformations are done. |
-library web_components.build.test_compatability.dart; |
- |
-import 'dart:async'; |
-import 'package:barback/barback.dart'; |
-import 'package:html/dom.dart'; |
-import 'package:html/parser.dart'; |
- |
-/// The name of the attribute that will be added to script tags that started out |
-/// as <link rel="x-dart-test"> tags. |
-const testAttribute = '_was_test'; |
- |
-/// The first transformer that should be ran, this does a query selector for |
-/// link[rel="x-dart-test"] and changes them to a normal dart script tag with a |
-/// special `_was_test` attribute so we know to change it back later on. |
-class RewriteXDartTestToScript extends _EntryPointOnlyTransformer { |
- RewriteXDartTestToScript(List<String> entryPoints) : super(entryPoints); |
- |
- Future apply(Transform transform) { |
- return transform.primaryInput.readAsString().then((String html) { |
- var doc = parse(html); |
- for (var tag in doc.querySelectorAll('link[rel="x-dart-test"]')) { |
- tag.replaceWith(new Element.tag('script') |
- ..attributes['type'] = 'application/dart' |
- ..attributes['src'] = tag.attributes['href'] |
- ..attributes[testAttribute] = ''); |
- } |
- transform.addOutput( |
- new Asset.fromString(transform.primaryInput.id, doc.outerHtml)); |
- }); |
- } |
-} |
- |
-/// The last transformer that should be ran, this does a query selector for |
-/// `script[type="application/dart"][_was_test]` and changes matching elements |
-/// back to `<link rel="x-dart-test">` tags. |
-class RewriteScriptToXDartTest extends _EntryPointOnlyTransformer { |
- RewriteScriptToXDartTest(List<String> entryPoints) : super(entryPoints); |
- |
- Future apply(Transform transform) { |
- return transform.primaryInput.readAsString().then((String html) { |
- var doc = parse(html); |
- var scripts = doc |
- .querySelectorAll('script[type="application/dart"][$testAttribute]'); |
- for (var tag in scripts) { |
- tag.replaceWith(new Element.tag('link') |
- ..attributes['rel'] = 'x-dart-test' |
- ..attributes['href'] = tag.attributes['src']); |
- } |
- transform.addOutput( |
- new Asset.fromString(transform.primaryInput.id, doc.outerHtml)); |
- }); |
- } |
-} |
- |
-/// Internal base class to encapsulate the isPrimary logic. |
-abstract class _EntryPointOnlyTransformer extends Transformer { |
- final List<String> entryPoints; |
- |
- _EntryPointOnlyTransformer(this.entryPoints) : super(); |
- |
- bool isPrimary(AssetId id) { |
- if (!id.path.startsWith('test/')) return false; |
- if (entryPoints != null) return entryPoints.contains(id.path); |
- // If no entry point is supplied, then any html file is an entry point. |
- return id.path.endsWith('.html'); |
- } |
-} |