Index: tests/language/conditional_import_string_test.dart |
diff --git a/tests/language/conditional_import_string_test.dart b/tests/language/conditional_import_string_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d7506bdb66ebc211d404407867bbb853eee272f2 |
--- /dev/null |
+++ b/tests/language/conditional_import_string_test.dart |
@@ -0,0 +1,38 @@ |
+// Copyright (c) 2016, 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. |
+ |
+import "package:expect/expect.dart"; |
+import "package:async_helper/async_helper.dart"; |
+ |
+// All three libraries have an HttpRequest class. |
+import "conditional_import_string_test.dart" |
+ if (dart.library.io == "true") "dart:io" |
+ if (dart.library.html == "true") "dart:html" |
+ deferred as d show HttpRequest; |
+ |
+class HttpRequest {} |
+ |
+void main() { |
+ asyncStart(); |
+ var io = const String.fromEnvironment("dart.library.io"); |
+ var html = const String.fromEnvironment("dart.library.html"); |
+ () async { |
+ // Shouldn't fail. Shouldn't time out. |
+ await d.loadLibrary().timeout(const Duration(seconds: 5)); |
+ if (io == "true") { |
+ print("io"); |
+ Expect.throws(() => new d.HttpRequest()); // Class is abstract in dart:io |
+ } else if (html == "true") { |
+ print("html"); |
+ dynamic r = new d.HttpRequest(); // Shouldn't throw |
+ var o = r.open; // Shouldn't fail, the open method is there. |
+ } else { |
+ print("none"); |
+ dynamic r = new d.HttpRequest(); |
+ Expect.isTrue(r is HttpRequest); |
+ } |
+ asyncEnd(); |
+ }(); |
+} |
+ |