Chromium Code Reviews| Index: tests/language/deferred_not_loaded_check_test.dart |
| diff --git a/tests/language/deferred_not_loaded_check_test.dart b/tests/language/deferred_not_loaded_check_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..bfe467c80608140aab2c99ca72c11bbb2e2c7f87 |
| --- /dev/null |
| +++ b/tests/language/deferred_not_loaded_check_test.dart |
| @@ -0,0 +1,72 @@ |
| +// 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. |
| + |
| +import 'package:expect/expect.dart'; |
| +import 'package:async_helper/async_helper.dart'; |
| + |
| +import "deferred_not_loaded_check_lib.dart" deferred as lib; |
| + |
| +// Test that we give appropriate errors when accessing an element that is not |
| +// yet loaded. |
| + |
| +var c; |
| + |
| +expectNoSideEffect(test) { |
| + c = 0; |
| + test(); |
| + Expect.isTrue(c == 0); |
| +} |
| + |
| +expectThrowsNotLoaded(test){ |
| + Expect.throws(test, (e) => e is Error); |
| +} |
| + |
| +int sideEffect() { |
| + c = 1; |
| + return 10; |
| +} |
| + |
| +void main() { |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("Calling toplevel ${lib.foo(sideEffect())}"); |
|
floitsch
2014/04/14 12:04:08
Remove the prints.
Don't hide the code that is act
sigurdm
2014/04/22 11:22:48
Done.
|
| + }); |
| + }); |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("Calling static ${lib.C.foo(sideEffect())}"); |
| + }); |
| + }); |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("New-expression ${new lib.C(sideEffect())}"); |
| + }); |
| + }); |
| + expectThrowsNotLoaded(() { |
| + print("Getting var ${lib.a}"); |
| + }); |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("Setting var ${lib.a = sideEffect()}"); |
| + }); |
| + }); |
| + expectThrowsNotLoaded(() { |
| + print("Getter ${lib.getter}"); |
| + }); |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("Setter ${lib.setter = sideEffect()}"); |
| + }); |
| + }); |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("Setter ${lib.list[sideEffect()] = sideEffect()}"); |
| + }); |
| + }); |
| + expectNoSideEffect(() { |
| + expectThrowsNotLoaded(() { |
| + print("Non-function static call ${lib.closure(sideEffect())}"); |
| + }); |
| + }); |
| +} |