| 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..5c48da3bca1f5a1255abbc85b75558e74667afcd
|
| --- /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(() {
|
| + lib.foo(sideEffect());
|
| + });
|
| + });
|
| + expectNoSideEffect(() {
|
| + expectThrowsNotLoaded(() {
|
| + lib.C.foo(sideEffect());
|
| + });
|
| + });
|
| + expectNoSideEffect(() {
|
| + expectThrowsNotLoaded(() {
|
| + new lib.C(sideEffect());
|
| + });
|
| + });
|
| + expectThrowsNotLoaded(() {
|
| + lib.a;
|
| + });
|
| + expectNoSideEffect(() {
|
| + expectThrowsNotLoaded(() {
|
| + lib.a = sideEffect();
|
| + });
|
| + });
|
| + expectThrowsNotLoaded(() {
|
| + lib.getter;
|
| + });
|
| + expectNoSideEffect(() {
|
| + expectThrowsNotLoaded(() {
|
| + lib.setter = sideEffect();
|
| + });
|
| + });
|
| + expectNoSideEffect(() {
|
| + expectThrowsNotLoaded(() {
|
| + lib.list[sideEffect()] = sideEffect();
|
| + });
|
| + });
|
| + expectNoSideEffect(() {
|
| + expectThrowsNotLoaded(() {
|
| + lib.closure(sideEffect());
|
| + });
|
| + });
|
| +}
|
|
|