OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 /// Common test code that is run by 3 tests: mirrors_test.dart, | 5 /// Common test code that is run by 3 tests: mirrors_test.dart, |
6 /// mirrors_used_test.dart, and static_test.dart. | 6 /// mirrors_used_test.dart, and static_test.dart. |
7 library smoke.test.common; | 7 library smoke.test.common; |
8 | 8 |
9 import 'package:smoke/smoke.dart' as smoke; | 9 import 'package:smoke/smoke.dart' as smoke; |
10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 expect(d.name, #d); | 192 expect(d.name, #d); |
193 expect(d.isField, isTrue); | 193 expect(d.isField, isTrue); |
194 expect(d.isProperty, isFalse); | 194 expect(d.isProperty, isFalse); |
195 expect(d.isMethod, isFalse); | 195 expect(d.isMethod, isFalse); |
196 expect(d.isFinal, isFalse); | 196 expect(d.isFinal, isFalse); |
197 expect(d.isStatic, isFalse); | 197 expect(d.isStatic, isFalse); |
198 expect(d.annotations, [32]); | 198 expect(d.annotations, [32]); |
199 expect(d.type, int); | 199 expect(d.type, int); |
200 }); | 200 }); |
201 | 201 |
| 202 test('isSuperclass', () { |
| 203 expect(smoke.isSubclassOf(D, C), isTrue); |
| 204 expect(smoke.isSubclassOf(H, G), isTrue); |
| 205 expect(smoke.isSubclassOf(H, H), isTrue); |
| 206 expect(smoke.isSubclassOf(H, Object), isTrue); |
| 207 expect(smoke.isSubclassOf(B, Object), isTrue); |
| 208 expect(smoke.isSubclassOf(A, Object), isTrue); |
| 209 expect(smoke.isSubclassOf(AnnotB, Annot), isTrue); |
| 210 |
| 211 expect(smoke.isSubclassOf(D, A), isFalse); |
| 212 expect(smoke.isSubclassOf(H, B), isFalse); |
| 213 expect(smoke.isSubclassOf(B, A), isFalse); |
| 214 expect(smoke.isSubclassOf(Object, A), isFalse); |
| 215 }); |
| 216 |
202 group('query', () { | 217 group('query', () { |
203 test('default', () { | 218 test('default', () { |
204 var options = new smoke.QueryOptions(); | 219 var options = new smoke.QueryOptions(); |
205 var res = smoke.query(A, options); | 220 var res = smoke.query(A, options); |
206 expect(res.map((e) => e.name), [#i, #j, #j2]); | 221 expect(res.map((e) => e.name), [#i, #j, #j2]); |
207 }); | 222 }); |
208 | 223 |
209 test('only fields', () { | 224 test('only fields', () { |
210 var options = new smoke.QueryOptions(includeProperties: false); | 225 var options = new smoke.QueryOptions(includeProperties: false); |
211 var res = smoke.query(A, options); | 226 var res = smoke.query(A, options); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 options = new smoke.QueryOptions(includeInherited: true, | 266 options = new smoke.QueryOptions(includeInherited: true, |
252 withAnnotations: const [a1, a2]); | 267 withAnnotations: const [a1, a2]); |
253 res = smoke.query(H, options); | 268 res = smoke.query(H, options); |
254 expect(res.map((e) => e.name), [#b, #d, #f, #g, #h]); | 269 expect(res.map((e) => e.name), [#b, #d, #f, #g, #h]); |
255 }); | 270 }); |
256 | 271 |
257 test('type annotation', () { | 272 test('type annotation', () { |
258 var options = new smoke.QueryOptions(includeInherited: true, | 273 var options = new smoke.QueryOptions(includeInherited: true, |
259 withAnnotations: const [Annot]); | 274 withAnnotations: const [Annot]); |
260 var res = smoke.query(H, options); | 275 var res = smoke.query(H, options); |
261 expect(res.map((e) => e.name), [#b, #f, #g]); | 276 expect(res.map((e) => e.name), [#b, #f, #g, #i]); |
262 }); | 277 }); |
263 | 278 |
264 test('mixed annotations (type and exact)', () { | 279 test('mixed annotations (type and exact)', () { |
265 var options = new smoke.QueryOptions(includeInherited: true, | 280 var options = new smoke.QueryOptions(includeInherited: true, |
266 withAnnotations: const [a2, Annot]); | 281 withAnnotations: const [a2, Annot]); |
267 var res = smoke.query(H, options); | 282 var res = smoke.query(H, options); |
268 expect(res.map((e) => e.name), [#b, #d, #f, #g, #h]); | 283 expect(res.map((e) => e.name), [#b, #d, #f, #g, #h, #i]); |
269 }); | 284 }); |
270 | 285 |
271 test('symbol to name', () { | 286 test('symbol to name', () { |
272 expect(smoke.symbolToName(#i), 'i'); | 287 expect(smoke.symbolToName(#i), 'i'); |
273 }); | 288 }); |
274 | 289 |
275 test('name to symbol', () { | 290 test('name to symbol', () { |
276 expect(smoke.nameToSymbol('i'), #i); | 291 expect(smoke.nameToSymbol('i'), #i); |
277 }); | 292 }); |
278 }); | 293 }); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 | 347 |
333 class E2 extends E {} | 348 class E2 extends E {} |
334 | 349 |
335 class F { | 350 class F { |
336 static int staticMethod(A a) => a.i; | 351 static int staticMethod(A a) => a.i; |
337 } | 352 } |
338 | 353 |
339 class F2 extends F {} | 354 class F2 extends F {} |
340 | 355 |
341 class Annot { const Annot(); } | 356 class Annot { const Annot(); } |
| 357 class AnnotB extends Annot { const AnnotB(); } |
342 const a1 = const Annot(); | 358 const a1 = const Annot(); |
343 const a2 = 32; | 359 const a2 = 32; |
| 360 const a3 = const AnnotB(); |
344 | 361 |
345 | 362 |
346 class G { | 363 class G { |
347 int a; | 364 int a; |
348 @a1 int b; | 365 @a1 int b; |
349 int c; | 366 int c; |
350 @a2 int d; | 367 @a2 int d; |
351 } | 368 } |
352 | 369 |
353 class H extends G { | 370 class H extends G { |
354 int e; | 371 int e; |
355 @a1 int f; | 372 @a1 int f; |
356 @a1 int g; | 373 @a1 int g; |
357 @a2 int h; | 374 @a2 int h; |
| 375 @a3 int i; |
358 } | 376 } |
OLD | NEW |