| Index: tests/compiler/dart2js/private_test.dart
|
| diff --git a/tests/compiler/dart2js/private_test.dart b/tests/compiler/dart2js/private_test.dart
|
| index df4c40ac57e1af210d95b4d6b2577a88279d7495..5121422a2434b42a096e530dfe70483f52e3a5bf 100644
|
| --- a/tests/compiler/dart2js/private_test.dart
|
| +++ b/tests/compiler/dart2js/private_test.dart
|
| @@ -2,6 +2,7 @@
|
| // 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 'dart:async';
|
| import "package:expect/expect.dart";
|
| import "package:async_helper/async_helper.dart";
|
| import 'mock_compiler.dart';
|
| @@ -41,127 +42,132 @@ class PublicClass extends _PrivateClass {
|
| ''';
|
|
|
|
|
| -void analyze(String text, [expectedWarnings]) {
|
| - if (expectedWarnings == null) expectedWarnings = [];
|
| - if (expectedWarnings is !List) expectedWarnings = [expectedWarnings];
|
| -
|
| - MockCompiler compiler = new MockCompiler.internal(analyzeOnly: true);
|
| - compiler.registerSource(Uri.parse(PRIVATE_SOURCE_URI), PRIVATE_SOURCE);
|
| - compiler.diagnosticHandler = (uri, int begin, int end, String message, kind) {
|
| - SourceFile sourceFile = compiler.sourceFiles[uri.toString()];
|
| - if (sourceFile != null) {
|
| - print(sourceFile.getLocationMessage(message, begin, end));
|
| - } else {
|
| - print(message);
|
| - }
|
| +analyze(String text, [expectedWarnings]) {
|
| + return () {
|
| + if (expectedWarnings == null) expectedWarnings = [];
|
| + if (expectedWarnings is !List) expectedWarnings = [expectedWarnings];
|
| +
|
| + MockCompiler compiler = new MockCompiler.internal(analyzeOnly: true);
|
| + compiler.registerSource(Uri.parse(PRIVATE_SOURCE_URI), PRIVATE_SOURCE);
|
| + compiler.diagnosticHandler =
|
| + (uri, int begin, int end, String message, kind) {
|
| + SourceFile sourceFile = compiler.sourceFiles[uri.toString()];
|
| + if (sourceFile != null) {
|
| + print(sourceFile.getLocationMessage(message, begin, end));
|
| + } else {
|
| + print(message);
|
| + }
|
| + };
|
| +
|
| + String source = '''
|
| + library public;
|
| +
|
| + import '$PRIVATE_SOURCE_URI';
|
| +
|
| + void main() {
|
| + PublicClass publicClass;
|
| + $text
|
| + }
|
| + ''';
|
| + Uri uri = Uri.parse('src:public');
|
| + compiler.registerSource(uri, source);
|
| + return compiler.runCompiler(uri).then((_) {
|
| + compareWarningKinds(text, expectedWarnings, compiler.warnings);
|
| + });
|
| };
|
| -
|
| - String source = '''
|
| - library public;
|
| -
|
| - import '$PRIVATE_SOURCE_URI';
|
| -
|
| - void main() {
|
| - PublicClass publicClass;
|
| - $text
|
| - }
|
| - ''';
|
| - Uri uri = Uri.parse('src:public');
|
| - compiler.registerSource(uri, source);
|
| - asyncTest(() => compiler.runCompiler(uri).then((_) {
|
| - compareWarningKinds(text, expectedWarnings, compiler.warnings);
|
| - }));
|
| }
|
|
|
| void main() {
|
| - // Read from private variable.
|
| - analyze('var value = _privateVariable;', MessageKind.CANNOT_RESOLVE);
|
| - // Write to private variable.
|
| - analyze('_privateVariable = 0;', MessageKind.CANNOT_RESOLVE);
|
| - // Access private function.
|
| - analyze('var value = _privateFunction;', MessageKind.CANNOT_RESOLVE);
|
| - // Call private function.
|
| - analyze('_privateFunction();', MessageKind.CANNOT_RESOLVE);
|
| -
|
| - // Call unnamed (public) constructor on private class.
|
| - analyze('new _PrivateClass();', MessageKind.CANNOT_RESOLVE);
|
| - // Call public constructor on private class.
|
| - analyze('new _PrivateClass.publicConstructor();',
|
| - MessageKind.CANNOT_RESOLVE);
|
| - // Call private constructor on private class.
|
| - analyze('new _PrivateClass._privateConstructor();',
|
| - MessageKind.CANNOT_RESOLVE);
|
| - // Call public getter of private type.
|
| - analyze('var value = publicClass.private;');
|
| - // Read from private field on private class.
|
| - analyze('var value = publicClass.private._privateField;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Write to private field on private class.
|
| - analyze('publicClass.private._privateField = 0;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Call private getter on private class.
|
| - analyze('var value = publicClass.private._privateGetter;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Call private setter on private class.
|
| - analyze('publicClass.private._privateSetter = 0;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Access private method on private class.
|
| - analyze('var value = publicClass.private._privateMethod;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Call private method on private class.
|
| - analyze('publicClass.private._privateMethod();',
|
| - MessageKind.PRIVATE_ACCESS);
|
| -
|
| - // Read from public field on private class.
|
| - analyze('var value = publicClass.private.publicField;');
|
| - // Write to public field on private class.
|
| - analyze('publicClass.private.publicField = 0;');
|
| - // Call public getter on private class.
|
| - analyze('var value = publicClass.private.publicGetter;');
|
| - // Call public setter on private class.
|
| - analyze('publicClass.private.publicSetter = 0;');
|
| - // Access public method on private class.
|
| - analyze('var value = publicClass.private.publicMethod;');
|
| - // Call public method on private class.
|
| - analyze('publicClass.private.publicMethod();');
|
| -
|
| - // Call unnamed (public) constructor on public class.
|
| - analyze('publicClass = new PublicClass();');
|
| - // Call public constructor on public class.
|
| - analyze('publicClass = new PublicClass.publicConstructor();');
|
| - // Call private constructor on public class.
|
| - analyze('publicClass = new PublicClass._privateConstructor();',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Read from private field on public class.
|
| - analyze('var value = publicClass._privateField;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Write to private field on public class.
|
| - analyze('publicClass._privateField = 0;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Call private getter on public class.
|
| - analyze('var value = publicClass._privateGetter;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Call private setter on public class.
|
| - analyze('publicClass._privateSetter = 0;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Access private method on public class.
|
| - analyze('var value = publicClass._privateMethod;',
|
| - MessageKind.PRIVATE_ACCESS);
|
| - // Call private method on public class.
|
| - analyze('publicClass._privateMethod();',
|
| - MessageKind.PRIVATE_ACCESS);
|
| -
|
| - // Read from public field on public class.
|
| - analyze('var value = publicClass.publicField;');
|
| - // Write to public field on public class.
|
| - analyze('publicClass.publicField = 0;');
|
| - // Call public getter on public class.
|
| - analyze('var value = publicClass.publicGetter;');
|
| - // Call public setter on public class.
|
| - analyze('publicClass.publicSetter = 0;');
|
| - // Access public method on public class.
|
| - analyze('var value = publicClass.publicMethod;');
|
| - // Call public method on public class.
|
| - analyze('publicClass.publicMethod();');
|
| + asyncTest(() => Future.forEach([
|
| + // Read from private variable.
|
| + analyze('var value = _privateVariable;', MessageKind.CANNOT_RESOLVE),
|
| + // Write to private variable.
|
| + analyze('_privateVariable = 0;', MessageKind.CANNOT_RESOLVE),
|
| + // Access private function.
|
| + analyze('var value = _privateFunction;', MessageKind.CANNOT_RESOLVE),
|
| + // Call private function.
|
| + analyze('_privateFunction();', MessageKind.CANNOT_RESOLVE),
|
| +
|
| + // Call unnamed (public) constructor on private class.
|
| + analyze('new _PrivateClass();', MessageKind.CANNOT_RESOLVE),
|
| + // Call public constructor on private class.
|
| + analyze('new _PrivateClass.publicConstructor();',
|
| + MessageKind.CANNOT_RESOLVE),
|
| + // Call private constructor on private class.
|
| + analyze('new _PrivateClass._privateConstructor();',
|
| + MessageKind.CANNOT_RESOLVE),
|
| + // Call public getter of private type.
|
| + analyze('var value = publicClass.private;'),
|
| + // Read from private field on private class.
|
| + analyze('var value = publicClass.private._privateField;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Write to private field on private class.
|
| + analyze('publicClass.private._privateField = 0;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Call private getter on private class.
|
| + analyze('var value = publicClass.private._privateGetter;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Call private setter on private class.
|
| + analyze('publicClass.private._privateSetter = 0;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Access private method on private class.
|
| + analyze('var value = publicClass.private._privateMethod;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Call private method on private class.
|
| + analyze('publicClass.private._privateMethod();',
|
| + MessageKind.PRIVATE_ACCESS),
|
| +
|
| + // Read from public field on private class.
|
| + analyze('var value = publicClass.private.publicField;'),
|
| + // Write to public field on private class.
|
| + analyze('publicClass.private.publicField = 0;'),
|
| + // Call public getter on private class.
|
| + analyze('var value = publicClass.private.publicGetter;'),
|
| + // Call public setter on private class.
|
| + analyze('publicClass.private.publicSetter = 0;'),
|
| + // Access public method on private class.
|
| + analyze('var value = publicClass.private.publicMethod;'),
|
| + // Call public method on private class.
|
| + analyze('publicClass.private.publicMethod();'),
|
| +
|
| + // Call unnamed (public) constructor on public class.
|
| + analyze('publicClass = new PublicClass();'),
|
| + // Call public constructor on public class.
|
| + analyze('publicClass = new PublicClass.publicConstructor();'),
|
| + // Call private constructor on public class.
|
| + analyze('publicClass = new PublicClass._privateConstructor();',
|
| + MessageKind.CANNOT_FIND_CONSTRUCTOR),
|
| + // Read from private field on public class.
|
| + analyze('var value = publicClass._privateField;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Write to private field on public class.
|
| + analyze('publicClass._privateField = 0;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Call private getter on public class.
|
| + analyze('var value = publicClass._privateGetter;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Call private setter on public class.
|
| + analyze('publicClass._privateSetter = 0;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Access private method on public class.
|
| + analyze('var value = publicClass._privateMethod;',
|
| + MessageKind.PRIVATE_ACCESS),
|
| + // Call private method on public class.
|
| + analyze('publicClass._privateMethod();',
|
| + MessageKind.PRIVATE_ACCESS),
|
| +
|
| + // Read from public field on public class.
|
| + analyze('var value = publicClass.publicField;'),
|
| + // Write to public field on public class.
|
| + analyze('publicClass.publicField = 0;'),
|
| + // Call public getter on public class.
|
| + analyze('var value = publicClass.publicGetter;'),
|
| + // Call public setter on public class.
|
| + analyze('publicClass.publicSetter = 0;'),
|
| + // Access public method on public class.
|
| + analyze('var value = publicClass.publicMethod;'),
|
| + // Call public method on public class.
|
| + analyze('publicClass.publicMethod();'),
|
| + ], (f) => f()));
|
| }
|
|
|
|
|