Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: dart/tests/lib/mirrors/mirrors_test.dart

Issue 15895002: Implement ClosureMirror. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address review comments Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 instMirror.setFieldAsync(const Symbol('field'), 44); 99 instMirror.setFieldAsync(const Symbol('field'), 44);
100 future = instMirror.getFieldAsync(const Symbol('field')); 100 future = instMirror.getFieldAsync(const Symbol('field'));
101 future.then(expectAsync1((resultMirror) { 101 future.then(expectAsync1((resultMirror) {
102 expect(resultMirror.reflectee, equals(44)); 102 expect(resultMirror.reflectee, equals(44));
103 expect(instance.field, equals(44)); 103 expect(instance.field, equals(44));
104 })); 104 }));
105 } 105 }
106 106
107 testClosureMirrors(mirrors) { 107 testClosureMirrors(mirrors) {
108 // TODO(ahe): Test optional parameters (named or not).
108 var closure = (x, y, z) { return x + y + z; }; 109 var closure = (x, y, z) { return x + y + z; };
109 110
110 var mirror = reflect(closure); 111 var mirror = reflect(closure);
111 expect(mirror is ClosureMirror, equals(true)); 112 expect(mirror is ClosureMirror, equals(true));
112 113
113 var funcMirror = mirror.function; 114 var funcMirror = mirror.function;
114 expect(funcMirror is MethodMirror, equals(true)); 115 expect(funcMirror is MethodMirror, equals(true));
115 expect(funcMirror.parameters.length, equals(3)); 116 expect(funcMirror.parameters.length, equals(3));
116 117
117 expect(mirror.apply([7, 8, 9]).reflectee, equals(24)); 118 expect(mirror.apply([7, 8, 9]).reflectee, equals(24));
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 LibraryMirror valueLibrary = valueClass.owner; 198 LibraryMirror valueLibrary = valueClass.owner;
198 expect(check(valueLibrary.uri), isTrue); 199 expect(check(valueLibrary.uri), isTrue);
199 } 200 }
200 201
201 mainWithArgument({bool isDart2js}) { 202 mainWithArgument({bool isDart2js}) {
202 var mirrors = currentMirrorSystem(); 203 var mirrors = currentMirrorSystem();
203 test("Test reflective method invocation", () { testInvoke(mirrors); }); 204 test("Test reflective method invocation", () { testInvoke(mirrors); });
204 test("Test instance field access", () { testInstanceFieldAccess(mirrors); }); 205 test("Test instance field access", () { testInstanceFieldAccess(mirrors); });
205 test('Test intercepted objects', () { testIntercepted(mirrors); }); 206 test('Test intercepted objects', () { testIntercepted(mirrors); });
206 test("Test field access", () { testFieldAccess(mirrors); }); 207 test("Test field access", () { testFieldAccess(mirrors); });
208 test("Test closure mirrors", () { testClosureMirrors(mirrors); });
207 if (isDart2js) return; 209 if (isDart2js) return;
208 test("Test closure mirrors", () { testClosureMirrors(mirrors); });
209 test("Test invoke constructor", () { testInvokeConstructor(mirrors); }); 210 test("Test invoke constructor", () { testInvokeConstructor(mirrors); });
210 test("Test reflect type", () { testReflectClass(mirrors); }); 211 test("Test reflect type", () { testReflectClass(mirrors); });
211 test("Test simple and qualifiedName", () { testNames(mirrors); }); 212 test("Test simple and qualifiedName", () { testNames(mirrors); });
212 test("Test current library uri", () { 213 test("Test current library uri", () {
213 testLibraryUri(new Class(), 214 testLibraryUri(new Class(),
214 (Uri uri) => uri.path.endsWith('/mirrors_test.dart')); 215 (Uri uri) => uri.path.endsWith('/mirrors_test.dart'));
215 }); 216 });
216 test("Test dart library uri", () { 217 test("Test dart library uri", () {
217 testLibraryUri("test", (Uri uri) => uri == Uri.parse('dart:core')); 218 testLibraryUri("test", (Uri uri) => uri == Uri.parse('dart:core'));
218 }); 219 });
219 } 220 }
220 221
221 main() { 222 main() {
222 mainWithArgument(isDart2js: false); 223 mainWithArgument(isDart2js: false);
223 } 224 }
OLDNEW
« no previous file with comments | « dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698