Chromium Code Reviews| 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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 154 var classMirror = reflectClass(Class); | 154 var classMirror = reflectClass(Class); |
| 155 expect(classMirror is ClassMirror, equals(true)); | 155 expect(classMirror is ClassMirror, equals(true)); |
| 156 var symbolClassMirror = reflectClass(Symbol); | 156 var symbolClassMirror = reflectClass(Symbol); |
| 157 var symbolMirror = symbolClassMirror.newInstance(const Symbol(''), | 157 var symbolMirror = symbolClassMirror.newInstance(const Symbol(''), |
| 158 ['withInitialValue']); | 158 ['withInitialValue']); |
| 159 var objectMirror = classMirror.newInstance(symbolMirror.reflectee,[1234]); | 159 var objectMirror = classMirror.newInstance(symbolMirror.reflectee,[1234]); |
| 160 expect(objectMirror.reflectee is Class, equals(true)); | 160 expect(objectMirror.reflectee is Class, equals(true)); |
| 161 expect(objectMirror.reflectee.field, equals(1234)); | 161 expect(objectMirror.reflectee.field, equals(1234)); |
| 162 } | 162 } |
| 163 | 163 |
| 164 testNames(mirrors) { | 164 testNames(mirrors, isDart2js) { |
| 165 var libMirror = mirrors.findLibrary(const Symbol("MirrorsTest")).single; | 165 var libMirror = mirrors.findLibrary(const Symbol("MirrorsTest")).single; |
| 166 var classMirror = libMirror.classes[const Symbol('Class')]; | 166 var classMirror = libMirror.classes[const Symbol('Class')]; |
| 167 var typedefMirror = libMirror.members[const Symbol('Typedef')]; | 167 var typedefMirror = libMirror.members[const Symbol('Typedef')]; |
| 168 var methodMirror = libMirror.functions[const Symbol('testNames')]; | 168 var methodMirror = libMirror.functions[const Symbol('testNames')]; |
| 169 var variableMirror = classMirror.variables[const Symbol('field')]; | 169 var variableMirror = classMirror.variables[const Symbol('field')]; |
| 170 | 170 |
| 171 expect(libMirror.simpleName, equals(const Symbol('MirrorsTest'))); | 171 expect(libMirror.simpleName, equals(const Symbol('MirrorsTest'))); |
| 172 expect(libMirror.qualifiedName, equals(const Symbol('MirrorsTest'))); | 172 expect(libMirror.qualifiedName, equals(const Symbol('MirrorsTest'))); |
| 173 | 173 |
| 174 expect(classMirror.simpleName, equals(const Symbol('Class'))); | 174 expect(classMirror.simpleName, equals(const Symbol('Class'))); |
| 175 expect(classMirror.qualifiedName, equals(const Symbol('MirrorsTest.Class'))); | 175 expect(classMirror.qualifiedName, equals(const Symbol('MirrorsTest.Class'))); |
| 176 | 176 |
| 177 TypeVariableMirror typeVariable = classMirror.typeVariables.values.single; | 177 if (!isDart2js) { // TODO(ahe): Implement this in dart2js. |
| 178 expect(typeVariable.simpleName, equals(const Symbol('T'))); | 178 TypeVariableMirror typeVariable = classMirror.typeVariables.values.single; |
| 179 expect(typeVariable.qualifiedName, | 179 expect(typeVariable.simpleName, equals(const Symbol('T'))); |
| 180 equals(const Symbol('MirrorsTest.Class.T'))); | 180 expect(typeVariable.qualifiedName, |
| 181 equals(const Symbol('MirrorsTest.Class.T'))); | |
| 181 | 182 |
| 182 expect(typedefMirror.simpleName, equals(const Symbol('Typedef'))); | 183 expect(typedefMirror.simpleName, equals(const Symbol('Typedef'))); |
| 183 expect(typedefMirror.qualifiedName, | 184 expect(typedefMirror.qualifiedName, |
| 184 equals(const Symbol('MirrorsTest.Typedef'))); | 185 equals(const Symbol('MirrorsTest.Typedef'))); |
| 186 } | |
| 185 | 187 |
| 186 expect(methodMirror.simpleName, equals(const Symbol('testNames'))); | 188 expect(methodMirror.simpleName, equals(const Symbol('testNames'))); |
| 187 expect(methodMirror.qualifiedName, | 189 expect(methodMirror.qualifiedName, |
| 188 equals(const Symbol('MirrorsTest.testNames'))); | 190 equals(const Symbol('MirrorsTest.testNames'))); |
| 189 | 191 |
| 190 expect(variableMirror.simpleName, equals(const Symbol('field'))); | 192 expect(variableMirror.simpleName, equals(const Symbol('field'))); |
| 191 expect(variableMirror.qualifiedName, | 193 expect(variableMirror.qualifiedName, |
| 192 equals(const Symbol('MirrorsTest.Class.field'))); | 194 equals(const Symbol('MirrorsTest.Class.field'))); |
| 193 } | 195 } |
| 194 | 196 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 207 test("Test field access", () { testFieldAccess(mirrors); }); | 209 test("Test field access", () { testFieldAccess(mirrors); }); |
| 208 test("Test closure mirrors", () { testClosureMirrors(mirrors); }); | 210 test("Test closure mirrors", () { testClosureMirrors(mirrors); }); |
| 209 test("Test invoke constructor", () { testInvokeConstructor(mirrors); }); | 211 test("Test invoke constructor", () { testInvokeConstructor(mirrors); }); |
| 210 test("Test current library uri", () { | 212 test("Test current library uri", () { |
| 211 testLibraryUri(new Class(), | 213 testLibraryUri(new Class(), |
| 212 (Uri uri) => uri.path.endsWith('/mirrors_test.dart')); | 214 (Uri uri) => uri.path.endsWith('/mirrors_test.dart')); |
| 213 }); | 215 }); |
| 214 test("Test dart library uri", () { | 216 test("Test dart library uri", () { |
| 215 testLibraryUri("test", (Uri uri) => uri == Uri.parse('dart:core')); | 217 testLibraryUri("test", (Uri uri) => uri == Uri.parse('dart:core')); |
| 216 }); | 218 }); |
| 217 if (isDart2js) return; | 219 test("Test simple and qualifiedName", () { testNames(mirrors, isDart2js); }); |
| 220 if (isDart2js) return; // TODO(ahe): Remove this line. | |
|
kasperl
2013/05/27 12:15:33
Almost there.
| |
| 218 test("Test reflect type", () { testReflectClass(mirrors); }); | 221 test("Test reflect type", () { testReflectClass(mirrors); }); |
| 219 test("Test simple and qualifiedName", () { testNames(mirrors); }); | |
| 220 } | 222 } |
| 221 | 223 |
| 222 main() { | 224 main() { |
| 223 mainWithArgument(isDart2js: false); | 225 mainWithArgument(isDart2js: false); |
| 224 } | 226 } |
| OLD | NEW |