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