Index: test/codegen/lib/mirrors/library_declarations_test.dart |
diff --git a/test/codegen/lib/mirrors/library_declarations_test.dart b/test/codegen/lib/mirrors/library_declarations_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..807bb5710cdd9cbb48f75be6411d60019d4c272a |
--- /dev/null |
+++ b/test/codegen/lib/mirrors/library_declarations_test.dart |
@@ -0,0 +1,122 @@ |
+// Copyright (c) 2013, 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. |
+ |
+library test.library_declarations_test; |
+ |
+import 'dart:mirrors'; |
+import 'package:expect/expect.dart'; |
+ |
+import 'stringify.dart'; |
+import 'declarations_model.dart' as declarations_model; |
+ |
+main() { |
+ LibraryMirror lm = |
+ currentMirrorSystem().findLibrary(#test.declarations_model); |
+ |
+ Expect.setEquals( |
+ ['Variable(s(_libraryVariable)' |
+ ' in s(test.declarations_model), private, top-level, static)', |
+ 'Variable(s(libraryVariable)' |
+ ' in s(test.declarations_model), top-level, static)'], |
+ lm.declarations.values.where((dm) => dm is VariableMirror).map(stringify), |
+ 'variables'); |
+ |
+ // dart2js stops testing here. |
+ return; /// 01: ok |
+ |
+ Expect.setEquals( |
+ ['Method(s(_libraryGetter)' |
+ ' in s(test.declarations_model), private, top-level, static, getter)', |
+ 'Method(s(libraryGetter)' |
+ ' in s(test.declarations_model), top-level, static, getter)'], |
+ lm.declarations.values |
+ .where((dm) => dm is MethodMirror && dm.isGetter).map(stringify), |
+ 'getters'); |
+ |
+ Expect.setEquals( |
+ ['Method(s(_librarySetter=)' |
+ ' in s(test.declarations_model), private, top-level, static, setter)', |
+ 'Method(s(librarySetter=)' |
+ ' in s(test.declarations_model), top-level, static, setter)'], |
+ lm.declarations.values |
+ .where((dm) => dm is MethodMirror && dm.isSetter).map(stringify), |
+ 'setters'); |
+ |
+ Expect.setEquals( |
+ ['Method(s(_libraryMethod)' |
+ ' in s(test.declarations_model), private, top-level, static)', |
+ 'Method(s(libraryMethod)' |
+ ' in s(test.declarations_model), top-level, static)'], |
+ lm.declarations.values |
+ .where((dm) => dm is MethodMirror && dm.isRegularMethod).map(stringify), |
+ 'regular methods'); |
+ |
+ Expect.setEquals( |
+ ['Class(s(Class) in s(test.declarations_model), top-level)', |
+ 'Class(s(ConcreteClass) in s(test.declarations_model), top-level)', |
+ 'Class(s(Interface) in s(test.declarations_model), top-level)', |
+ 'Class(s(Mixin) in s(test.declarations_model), top-level)', |
+ 'Class(s(Superclass) in s(test.declarations_model), top-level)', |
+ 'Class(s(_PrivateClass)' |
+ ' in s(test.declarations_model), private, top-level)'], |
+ lm.declarations.values |
+ .where((dm) => dm is ClassMirror).map(stringify), |
+ 'classes'); |
+ |
+ Expect.setEquals( |
+ ['Class(s(Class) in s(test.declarations_model), top-level)', |
+ 'Class(s(ConcreteClass) in s(test.declarations_model), top-level)', |
+ 'Class(s(Interface) in s(test.declarations_model), top-level)', |
+ 'Class(s(Mixin) in s(test.declarations_model), top-level)', |
+ 'Type(s(Predicate) in s(test.declarations_model), top-level)', |
+ 'Class(s(Superclass) in s(test.declarations_model), top-level)', |
+ 'Class(s(_PrivateClass)' |
+ ' in s(test.declarations_model), private, top-level)'], |
+ lm.declarations.values.where((dm) => dm is TypeMirror).map(stringify), |
+ 'types'); |
+ |
+ Expect.setEquals( |
+ ['Class(s(Class) in s(test.declarations_model), top-level)', |
+ 'Class(s(ConcreteClass) in s(test.declarations_model), top-level)', |
+ 'Class(s(Interface) in s(test.declarations_model), top-level)', |
+ 'Class(s(Mixin) in s(test.declarations_model), top-level)', |
+ 'Type(s(Predicate) in s(test.declarations_model), top-level)', |
+ 'Class(s(Superclass) in s(test.declarations_model), top-level)', |
+ 'Method(s(libraryGetter)' |
+ ' in s(test.declarations_model), top-level, static, getter)', |
+ 'Method(s(libraryMethod)' |
+ ' in s(test.declarations_model), top-level, static)', |
+ 'Method(s(librarySetter=)' |
+ ' in s(test.declarations_model), top-level, static, setter)', |
+ 'Variable(s(libraryVariable)' |
+ ' in s(test.declarations_model), top-level, static)'], |
+ lm.declarations.values.where((dm) => !dm.isPrivate).map(stringify), |
+ 'public'); |
+ |
+ Expect.setEquals( |
+ ['Class(s(Class) in s(test.declarations_model), top-level)', |
+ 'Class(s(ConcreteClass) in s(test.declarations_model), top-level)', |
+ 'Class(s(Interface) in s(test.declarations_model), top-level)', |
+ 'Class(s(Mixin) in s(test.declarations_model), top-level)', |
+ 'Type(s(Predicate) in s(test.declarations_model), top-level)', |
+ 'Class(s(Superclass) in s(test.declarations_model), top-level)', |
+ 'Class(s(_PrivateClass) in s(test.declarations_model), private, top-level)', |
+ 'Method(s(_libraryGetter)' |
+ ' in s(test.declarations_model), private, top-level, static, getter)', |
+ 'Method(s(_libraryMethod)' |
+ ' in s(test.declarations_model), private, top-level, static)', |
+ 'Method(s(_librarySetter=)' |
+ ' in s(test.declarations_model), private, top-level, static, setter)', |
+ 'Variable(s(_libraryVariable)' |
+ ' in s(test.declarations_model), private, top-level, static)', |
+ 'Method(s(libraryGetter)' |
+ ' in s(test.declarations_model), top-level, static, getter)', |
+ 'Method(s(libraryMethod) in s(test.declarations_model), top-level, static)', |
+ 'Method(s(librarySetter=)' |
+ ' in s(test.declarations_model), top-level, static, setter)', |
+ 'Variable(s(libraryVariable)' |
+ ' in s(test.declarations_model), top-level, static)'], |
+ lm.declarations.values.map(stringify), |
+ 'all declarations'); |
+} |