Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(890)

Unified Diff: tests/compiler/dart2js/mirrors_exports_test.dart

Issue 1805563002: Revert "Delete support for source mirrors" (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/mirrors_exports_test.dart
diff --git a/tests/compiler/dart2js/mirrors_exports_test.dart b/tests/compiler/dart2js/mirrors_exports_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..302dd316c64a601978ebfa8a75264ccef10036d2
--- /dev/null
+++ b/tests/compiler/dart2js/mirrors_exports_test.dart
@@ -0,0 +1,183 @@
+// Copyright (c) 2012, 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 'package:compiler/src/mirrors/source_mirrors.dart';
+
+import 'memory_compiler.dart';
+
+const SOURCE_FILES = const {
+'main.dart': '''
+import 'a.dart' show A1, A2;
+import 'b.dart' as b hide B1;
+export 'a.dart' show A2 hide A3, A1;
+export 'b.dart' hide B1, B2 show B3;
+import 'dart:core' as core;
+import 'c.dart' deferred as c;
+
+main() {}
+''',
+'a.dart': '''
+class A1 {}
+class A2 {}
+class A3 {}
+''',
+'b.dart': '''
+class B1 {}
+class B2 {}
+class B3 {}
+''',
+'c.dart': '''
+foo() => 499;
+'''
+};
+
+void main() {
+ asyncTest(() => mirrorSystemFor(SOURCE_FILES).then((MirrorSystem mirrors) {
+ LibrarySourceMirror mainLibrary =
+ mirrors.libraries[Uri.parse('memory:main.dart')];
+ Expect.isNotNull(mainLibrary);
+
+ LibrarySourceMirror aLibrary =
+ mirrors.libraries[Uri.parse('memory:a.dart')];
+ Expect.isNotNull(aLibrary);
+
+ LibrarySourceMirror bLibrary =
+ mirrors.libraries[Uri.parse('memory:b.dart')];
+ Expect.isNotNull(bLibrary);
+
+ LibrarySourceMirror cLibrary =
+ mirrors.libraries[Uri.parse('memory:c.dart')];
+ Expect.isNotNull(cLibrary);
+
+ LibrarySourceMirror coreLibrary =
+ mirrors.libraries[Uri.parse('dart:core')];
+ Expect.isNotNull(coreLibrary);
+
+ var dependencies = mainLibrary.libraryDependencies;
+ Expect.isNotNull(dependencies);
+ Expect.equals(6, dependencies.length);
+
+ // import 'a.dart' show A1, A2;
+ var dependency = dependencies[0];
+ Expect.isNotNull(dependency);
+ Expect.isTrue(dependency.isImport);
+ Expect.isFalse(dependency.isExport);
+ Expect.equals(mainLibrary, dependency.sourceLibrary);
+ Expect.equals(aLibrary, dependency.targetLibrary);
+ Expect.isNull(dependency.prefix);
+ Expect.isFalse(dependency.isDeferred);
+
+ var combinators = dependency.combinators;
+ Expect.isNotNull(combinators);
+ Expect.equals(1, combinators.length);
+
+ var combinator = combinators[0];
+ Expect.isNotNull(combinator);
+ Expect.isTrue(combinator.isShow);
+ Expect.isFalse(combinator.isHide);
+ Expect.listEquals(['A1', 'A2'], combinator.identifiers);
+
+ // import 'b.dart' as b hide B1;
+ dependency = dependencies[1];
+ Expect.isNotNull(dependency);
+ Expect.isTrue(dependency.isImport);
+ Expect.isFalse(dependency.isExport);
+ Expect.equals(mainLibrary, dependency.sourceLibrary);
+ Expect.equals(bLibrary, dependency.targetLibrary);
+ Expect.equals('b', dependency.prefix);
+ Expect.isFalse(dependency.isDeferred);
+
+ combinators = dependency.combinators;
+ Expect.isNotNull(combinators);
+ Expect.equals(1, combinators.length);
+
+ combinator = combinators[0];
+ Expect.isNotNull(combinator);
+ Expect.isFalse(combinator.isShow);
+ Expect.isTrue(combinator.isHide);
+ Expect.listEquals(['B1'], combinator.identifiers);
+
+ // export 'a.dart' show A2 hide A3, A1;
+ dependency = dependencies[2];
+ Expect.isNotNull(dependency);
+ Expect.isFalse(dependency.isImport);
+ Expect.isTrue(dependency.isExport);
+ Expect.equals(mainLibrary, dependency.sourceLibrary);
+ Expect.equals(aLibrary, dependency.targetLibrary);
+ Expect.isNull(dependency.prefix);
+ Expect.isFalse(dependency.isDeferred);
+
+ combinators = dependency.combinators;
+ Expect.isNotNull(combinators);
+ Expect.equals(2, combinators.length);
+
+ combinator = combinators[0];
+ Expect.isNotNull(combinator);
+ Expect.isTrue(combinator.isShow);
+ Expect.isFalse(combinator.isHide);
+ Expect.listEquals(['A2'], combinator.identifiers);
+
+ combinator = combinators[1];
+ Expect.isNotNull(combinator);
+ Expect.isFalse(combinator.isShow);
+ Expect.isTrue(combinator.isHide);
+ Expect.listEquals(['A3', 'A1'], combinator.identifiers);
+
+ // export 'b.dart' hide B1, B2 show B3;
+ dependency = dependencies[3];
+ Expect.isNotNull(dependency);
+ Expect.isFalse(dependency.isImport);
+ Expect.isTrue(dependency.isExport);
+ Expect.equals(mainLibrary, dependency.sourceLibrary);
+ Expect.equals(bLibrary, dependency.targetLibrary);
+ Expect.isNull(dependency.prefix);
+ Expect.isFalse(dependency.isDeferred);
+
+ combinators = dependency.combinators;
+ Expect.isNotNull(combinators);
+ Expect.equals(2, combinators.length);
+
+ combinator = combinators[0];
+ Expect.isNotNull(combinator);
+ Expect.isFalse(combinator.isShow);
+ Expect.isTrue(combinator.isHide);
+ Expect.listEquals(['B1', 'B2'], combinator.identifiers);
+
+ combinator = combinators[1];
+ Expect.isNotNull(combinator);
+ Expect.isTrue(combinator.isShow);
+ Expect.isFalse(combinator.isHide);
+ Expect.listEquals(['B3'], combinator.identifiers);
+
+ // import 'dart:core' as core;
+ dependency = dependencies[4];
+ Expect.isNotNull(dependency);
+ Expect.isTrue(dependency.isImport);
+ Expect.isFalse(dependency.isExport);
+ Expect.equals(mainLibrary, dependency.sourceLibrary);
+ Expect.equals(coreLibrary, dependency.targetLibrary);
+ Expect.equals('core', dependency.prefix);
+ Expect.isFalse(dependency.isDeferred);
+
+ combinators = dependency.combinators;
+ Expect.isNotNull(combinators);
+ Expect.equals(0, combinators.length);
+
+ // import 'c.dart' deferred as c;
+ dependency = dependencies[5];
+ Expect.isNotNull(dependency);
+ Expect.isTrue(dependency.isImport);
+ Expect.isFalse(dependency.isExport);
+ Expect.equals(mainLibrary, dependency.sourceLibrary);
+ Expect.equals(cLibrary, dependency.targetLibrary);
+ Expect.equals('c', dependency.prefix);
+ Expect.isTrue(dependency.isDeferred);
+
+ combinators = dependency.combinators;
+ Expect.isNotNull(combinators);
+ Expect.equals(0, combinators.length);
+ }));
+}
« no previous file with comments | « tests/compiler/dart2js/mirrors/relation_subtype_test.dart ('k') | tests/compiler/dart2js/mirrors_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698