| // 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. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| import "package:async_helper/async_helper.dart"; |
| |
| // All three libraries have an HttpRequest class. |
| import "conditional_import_test.dart" |
| if (dart.library.io) "dart:io" |
| if (dart.library.html) "dart:html" deferred as d show HttpRequest; |
| |
| class HttpRequest {} |
| |
| void main() { |
| asyncStart(); |
| var io = const bool.fromEnvironment("dart.library.io"); |
| var html = const bool.fromEnvironment("dart.library.html"); |
| () async { |
| // Shouldn't fail. Shouldn't time out. |
| await d.loadLibrary().timeout(const Duration(seconds: 5)); |
| if (io) { |
| print("io"); |
| Expect.throws(() => new d.HttpRequest()); // Class is abstract in dart:io |
| } else if (html) { |
| 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(); |
| }(); |
| } |