Index: tests/try/web/web_compiler_test_case.dart |
diff --git a/tests/try/web/web_compiler_test_case.dart b/tests/try/web/web_compiler_test_case.dart |
deleted file mode 100644 |
index 8a9b026c3a0a39b43652f9bfd1807b31e61bd118..0000000000000000000000000000000000000000 |
--- a/tests/try/web/web_compiler_test_case.dart |
+++ /dev/null |
@@ -1,114 +0,0 @@ |
-// Copyright (c) 2014, 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. |
- |
-// Helpers for writing compiler tests running in browser. |
-library trydart.web_compiler_test_case; |
- |
-import 'dart:async' show |
- EventSink, |
- Future; |
- |
-import 'dart:html' show |
- HttpRequest; |
- |
-import '../poi/compiler_test_case.dart' show |
- customUri, |
- CompilerTestCase; |
- |
-import 'package:dart2js_incremental/dart2js_incremental.dart' show |
- IncrementalCompiler, OutputProvider; |
- |
-import 'package:compiler/compiler.dart' show |
- Diagnostic; |
- |
-const String WEB_SCHEME = 'org.trydart.web'; |
- |
-/// A CompilerTestCase which runs in a browser. |
-class WebCompilerTestCase extends CompilerTestCase { |
- final IncrementalCompiler incrementalCompiler; |
- |
- WebCompilerTestCase.init(/* Map or String */ source, Uri uri) |
- : this.incrementalCompiler = makeCompiler(source, uri), |
- super.init(null, uri, null); |
- |
- WebCompilerTestCase(/* Map or String */ source, [String path]) |
- : this.init(source, customUri(path == null ? 'main.dart' : path)); |
- |
- Future run() { |
- return incrementalCompiler.compile(scriptUri).then((success) { |
- if (!success) throw 'Compilation failed'; |
- OutputProvider outputProvider = incrementalCompiler.outputProvider; |
- return outputProvider['.js']; |
- }); |
- } |
- |
- static IncrementalCompiler makeCompiler( |
- /* Map or String */ source, |
- Uri mainUri) { |
- Uri libraryRoot = new Uri(scheme: WEB_SCHEME, path: '/sdk/'); |
- Uri packageRoot = new Uri(scheme: WEB_SCHEME, path: '/packages/'); |
- |
- Map<Uri, String> sources = <Uri, String>{}; |
- if (source is String) { |
- sources[mainUri] = source; |
- } else if (source is Map) { |
- source.forEach((String name, String code) { |
- sources[mainUri.resolve(name)] = code; |
- }); |
- } else { |
- throw new ArgumentError("[source] should be a String or a Map"); |
- } |
- |
- WebInputProvider inputProvider = |
- new WebInputProvider(sources, libraryRoot, packageRoot); |
- |
- void diagnosticHandler( |
- Uri uri, int begin, int end, String message, Diagnostic kind) { |
- if (uri == null) { |
- print('[$kind] $message'); |
- } else { |
- print('$uri@$begin+${end - begin}: [$kind] $message'); |
- } |
- } |
- |
- return new IncrementalCompiler( |
- libraryRoot: libraryRoot, |
- packageRoot: packageRoot, |
- inputProvider: inputProvider, |
- diagnosticHandler: diagnosticHandler, |
- outputProvider: new OutputProvider()); |
- } |
-} |
- |
-/// An input provider which provides input via [HttpRequest]. |
-/// Includes one in-memory compilation unit [source] which is returned when |
-/// [mainUri] is requested. |
-class WebInputProvider { |
- final Map<Uri, String> sources; |
- |
- final Uri libraryRoot; |
- |
- final Uri packageRoot; |
- |
- final Map<Uri, Future> cachedSources = new Map<Uri, Future>(); |
- |
- static final Map<String, Future> cachedRequests = new Map<String, Future>(); |
- |
- WebInputProvider(this.sources, this.libraryRoot, this.packageRoot); |
- |
- Future call(Uri uri) { |
- return cachedSources.putIfAbsent(uri, () { |
- if (sources.containsKey(uri)) return new Future.value(sources[uri]); |
- if (uri.scheme == WEB_SCHEME) { |
- return cachedHttpRequest('/root_dart${uri.path}'); |
- } else { |
- return cachedHttpRequest('$uri'); |
- } |
- }); |
- } |
- |
- static Future cachedHttpRequest(String uri) { |
- return cachedRequests.putIfAbsent(uri, () => HttpRequest.getString(uri)); |
- } |
-} |