| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Test that when a deferred import fails to load, it is possible to retry. | 5 // Test that when a deferred import fails to load, it is possible to retry. |
| 6 | 6 |
| 7 import "deferred_fail_and_retry_lib.dart" deferred as lib; | 7 import "deferred_fail_and_retry_lib.dart" deferred as lib; |
| 8 import "package:expect/expect.dart"; | 8 import "package:expect/expect.dart"; |
| 9 import "package:async_helper/async_helper.dart"; | 9 import "package:async_helper/async_helper.dart"; |
| 10 import "dart:js" as js; | 10 import "dart:js" as js; |
| 11 | 11 |
| 12 main() { | 12 main() { |
| 13 // We patch document.body.appendChild to change the script src on first | 13 // We patch document.body.appendChild to change the script src on first |
| 14 // invocation. | 14 // invocation. |
| 15 js.context.callMethod("eval", [""" | 15 js.context.callMethod("eval", [ |
| 16 """ |
| 16 if (self.document) { | 17 if (self.document) { |
| 17 oldAppendChild = document.body.appendChild; | 18 oldAppendChild = document.body.appendChild; |
| 18 document.body.appendChild = function(element) { | 19 document.body.appendChild = function(element) { |
| 19 element.src = "non_existing.js"; | 20 element.src = "non_existing.js"; |
| 20 document.body.appendChild = oldAppendChild; | 21 document.body.appendChild = oldAppendChild; |
| 21 document.body.appendChild(element); | 22 document.body.appendChild(element); |
| 22 } | 23 } |
| 23 } | 24 } |
| 24 if (self.load) { | 25 if (self.load) { |
| 25 oldLoad = load; | 26 oldLoad = load; |
| 26 load = function(uri) { | 27 load = function(uri) { |
| 27 load = oldLoad; | 28 load = oldLoad; |
| 28 load("non_existing.js"); | 29 load("non_existing.js"); |
| 29 } | 30 } |
| 30 } | 31 } |
| 31 """]); | 32 """ |
| 33 ]); |
| 32 | 34 |
| 33 asyncStart(); | 35 asyncStart(); |
| 34 lib.loadLibrary().then((_) { | 36 lib.loadLibrary().then((_) { |
| 35 Expect.fail("Library should not have loaded"); | 37 Expect.fail("Library should not have loaded"); |
| 36 }, onError: (error) { | 38 }, onError: (error) { |
| 37 lib.loadLibrary().then((_) { | 39 lib.loadLibrary().then((_) { |
| 38 Expect.equals("loaded", lib.foo()); | 40 Expect.equals("loaded", lib.foo()); |
| 39 }, onError: (error) { | 41 }, onError: (error) { |
| 40 Expect.fail("Library should have loaded this time"); | 42 Expect.fail("Library should have loaded this time"); |
| 41 }).whenComplete(() { | 43 }).whenComplete(() { |
| 42 asyncEnd(); | 44 asyncEnd(); |
| 43 }); | 45 }); |
| 44 }); | 46 }); |
| 45 } | 47 } |
| OLD | NEW |