| // 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'); | |
| } |