| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // TODO(rmacnak): Move the existing mirror tests here (a place for | 5 // TODO(rmacnak): Move the existing mirror tests here (a place for |
| 6 // cross-implementation tests). | 6 // cross-implementation tests). |
| 7 | 7 |
| 8 library MirrorsTest; | 8 library MirrorsTest; |
| 9 import "dart:mirrors"; | 9 import "dart:mirrors"; |
| 10 import "../../../pkg/unittest/lib/unittest.dart"; | 10 import "../../../pkg/unittest/lib/unittest.dart"; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 var instance = new Class(); | 26 var instance = new Class(); |
| 27 var instMirror = reflect(instance); | 27 var instMirror = reflect(instance); |
| 28 | 28 |
| 29 expect(instMirror.invoke(const Symbol("m"),['A', 'B', instance]).reflectee, | 29 expect(instMirror.invoke(const Symbol("m"),['A', 'B', instance]).reflectee, |
| 30 equals({"a": 'A', "b":'B', "c": instance})); | 30 equals({"a": 'A', "b":'B', "c": instance})); |
| 31 } | 31 } |
| 32 | 32 |
| 33 testFieldAccess(mirrors) { | 33 testFieldAccess(mirrors) { |
| 34 var instance = new Class(); | 34 var instance = new Class(); |
| 35 | 35 |
| 36 var libMirror = mirrors.libraries[const Symbol("MirrorsTest")]; | 36 var libMirror = mirrors.findLibrary(const Symbol("MirrorsTest")).single; |
| 37 var classMirror = libMirror.classes[const Symbol("Class")]; | 37 var classMirror = libMirror.classes[const Symbol("Class")]; |
| 38 var instMirror = reflect(instance); | 38 var instMirror = reflect(instance); |
| 39 var fieldMirror = classMirror.members[new Symbol('field')]; |
| 40 |
| 41 expect(fieldMirror is VariableMirror, isTrue); |
| 42 expect(fieldMirror.type, equals(mirrors.dynamicType)); |
| 39 | 43 |
| 40 libMirror.setField(const Symbol('topLevelField'), [91]); | 44 libMirror.setField(const Symbol('topLevelField'), [91]); |
| 41 expect(libMirror.getField(const Symbol('topLevelField')).reflectee, | 45 expect(libMirror.getField(const Symbol('topLevelField')).reflectee, |
| 42 equals([91])); | 46 equals([91])); |
| 43 expect(topLevelField, equals([91])); | 47 expect(topLevelField, equals([91])); |
| 44 | 48 |
| 45 libMirror.setFieldAsync(new Symbol('topLevelField'), 42); | 49 libMirror.setFieldAsync(new Symbol('topLevelField'), 42); |
| 46 var future = libMirror.getFieldAsync(new Symbol('topLevelField')); | 50 var future = libMirror.getFieldAsync(new Symbol('topLevelField')); |
| 47 future.then(expectAsync1((resultMirror) { | 51 future.then(expectAsync1((resultMirror) { |
| 48 expect(resultMirror.reflectee, equals(42)); | 52 expect(resultMirror.reflectee, equals(42)); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 76 | 80 |
| 77 expect(mirror.apply([7, 8, 9]).reflectee, equals(24)); | 81 expect(mirror.apply([7, 8, 9]).reflectee, equals(24)); |
| 78 | 82 |
| 79 var future = mirror.applyAsync([2, 4, 8]); | 83 var future = mirror.applyAsync([2, 4, 8]); |
| 80 future.then(expectAsync1((resultMirror) { | 84 future.then(expectAsync1((resultMirror) { |
| 81 expect(resultMirror.reflectee, equals(14)); | 85 expect(resultMirror.reflectee, equals(14)); |
| 82 })); | 86 })); |
| 83 } | 87 } |
| 84 | 88 |
| 85 testInvokeConstructor(mirrors) { | 89 testInvokeConstructor(mirrors) { |
| 86 var libMirror = mirrors.libraries[const Symbol("MirrorsTest")]; | 90 var libMirror = mirrors.findLibrary(const Symbol("MirrorsTest")).single; |
| 87 var classMirror = libMirror.classes[const Symbol("Class")]; | 91 var classMirror = libMirror.classes[const Symbol("Class")]; |
| 88 | 92 |
| 89 var instanceMirror = classMirror.newInstance(const Symbol(''),[]); | 93 var instanceMirror = classMirror.newInstance(const Symbol(''),[]); |
| 90 expect(instanceMirror.reflectee is Class, equals(true)); | 94 expect(instanceMirror.reflectee is Class, equals(true)); |
| 91 expect(instanceMirror.reflectee.field, equals("default value")); | 95 expect(instanceMirror.reflectee.field, equals("default value")); |
| 92 | 96 |
| 93 instanceMirror = classMirror.newInstance(const Symbol('withInitialValue'), | 97 instanceMirror = classMirror.newInstance(const Symbol('withInitialValue'), |
| 94 [45]); | 98 [45]); |
| 95 expect(instanceMirror.reflectee is Class, equals(true)); | 99 expect(instanceMirror.reflectee is Class, equals(true)); |
| 96 expect(instanceMirror.reflectee.field, equals(45)); | 100 expect(instanceMirror.reflectee.field, equals(45)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 115 expect(classMirror is ClassMirror, equals(true)); | 119 expect(classMirror is ClassMirror, equals(true)); |
| 116 var symbolClassMirror = reflectClass(Symbol); | 120 var symbolClassMirror = reflectClass(Symbol); |
| 117 var symbolMirror = symbolClassMirror.newInstance(const Symbol(''), | 121 var symbolMirror = symbolClassMirror.newInstance(const Symbol(''), |
| 118 ['withInitialValue']); | 122 ['withInitialValue']); |
| 119 var objectMirror = classMirror.newInstance(symbolMirror.reflectee,[1234]); | 123 var objectMirror = classMirror.newInstance(symbolMirror.reflectee,[1234]); |
| 120 expect(objectMirror.reflectee is Class, equals(true)); | 124 expect(objectMirror.reflectee is Class, equals(true)); |
| 121 expect(objectMirror.reflectee.field, equals(1234)); | 125 expect(objectMirror.reflectee.field, equals(1234)); |
| 122 } | 126 } |
| 123 | 127 |
| 124 testNames(mirrors) { | 128 testNames(mirrors) { |
| 125 var libMirror = mirrors.libraries[const Symbol('MirrorsTest')]; | 129 var libMirror = mirrors.findLibrary(const Symbol("MirrorsTest")).single; |
| 126 var classMirror = libMirror.classes[const Symbol('Class')]; | 130 var classMirror = libMirror.classes[const Symbol('Class')]; |
| 127 var typedefMirror = libMirror.members[const Symbol('Typedef')]; | 131 var typedefMirror = libMirror.members[const Symbol('Typedef')]; |
| 128 var methodMirror = libMirror.functions[const Symbol('testNames')]; | 132 var methodMirror = libMirror.functions[const Symbol('testNames')]; |
| 129 var variableMirror = classMirror.variables[const Symbol('field')]; | 133 var variableMirror = classMirror.variables[const Symbol('field')]; |
| 130 | 134 |
| 131 expect(libMirror.simpleName, equals(const Symbol('MirrorsTest'))); | 135 expect(libMirror.simpleName, equals(const Symbol('MirrorsTest'))); |
| 132 expect(libMirror.qualifiedName, equals(const Symbol('MirrorsTest'))); | 136 expect(libMirror.qualifiedName, equals(const Symbol('MirrorsTest'))); |
| 133 | 137 |
| 134 expect(classMirror.simpleName, equals(const Symbol('Class'))); | 138 expect(classMirror.simpleName, equals(const Symbol('Class'))); |
| 135 expect(classMirror.qualifiedName, equals(const Symbol('MirrorsTest.Class'))); | 139 expect(classMirror.qualifiedName, equals(const Symbol('MirrorsTest.Class'))); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 test("Test reflect type", () { testReflectClass(mirrors); }); | 172 test("Test reflect type", () { testReflectClass(mirrors); }); |
| 169 test("Test simple and qualifiedName", () { testNames(mirrors); }); | 173 test("Test simple and qualifiedName", () { testNames(mirrors); }); |
| 170 test("Test current library uri", () { | 174 test("Test current library uri", () { |
| 171 testLibraryUri(new Class(), | 175 testLibraryUri(new Class(), |
| 172 (Uri uri) => uri.path.endsWith('/mirrors_test.dart')); | 176 (Uri uri) => uri.path.endsWith('/mirrors_test.dart')); |
| 173 }); | 177 }); |
| 174 test("Test dart library uri", () { | 178 test("Test dart library uri", () { |
| 175 testLibraryUri("test", (Uri uri) => uri == Uri.parse('dart:core')); | 179 testLibraryUri("test", (Uri uri) => uri == Uri.parse('dart:core')); |
| 176 }); | 180 }); |
| 177 } | 181 } |
| OLD | NEW |