OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'dart:typed_data'; | 5 import 'dart:typed_data'; |
6 | 6 |
7 import 'package:front_end/src/base/flat_buffers.dart' as fb; | |
8 import 'package:front_end/src/incremental/format.dart'; | 7 import 'package:front_end/src/incremental/format.dart'; |
9 import 'package:test/test.dart'; | 8 import 'package:test/test.dart'; |
10 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 9 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
11 | 10 |
12 main() { | 11 main() { |
13 defineReflectiveSuite(() { | 12 defineReflectiveSuite(() { |
14 defineReflectiveTests(FormatTest); | 13 defineReflectiveTests(FormatTest); |
15 }); | 14 }); |
16 } | 15 } |
17 | 16 |
18 @reflectiveTest | 17 @reflectiveTest |
19 class FormatTest { | 18 class FormatTest { |
20 void test_UnlinkedCombinator_hides() { | 19 void test_UnlinkedCombinator_isShow_false() { |
21 Uint8List bytes; | 20 Uint8List bytes = new UnlinkedCombinatorBuilder( |
22 { | 21 isShow: false, names: ['aaa', 'bbb', 'ccc']).toBytes(); |
23 fb.Builder fbBuilder = new fb.Builder(); | |
24 fb.Offset offset = | |
25 new UnlinkedCombinatorBuilder(hides: ['a', 'bb', 'ccc']) | |
26 .finish(fbBuilder); | |
27 bytes = fbBuilder.finish(offset); | |
28 } | |
29 | 22 |
30 var combinator = new UnlinkedCombinator(bytes); | 23 var combinator = new UnlinkedCombinator(bytes); |
31 expect(combinator.shows, isEmpty); | 24 expect(combinator.isShow, isFalse); |
32 expect(combinator.hides, ['a', 'bb', 'ccc']); | 25 expect(combinator.names, ['aaa', 'bbb', 'ccc']); |
33 } | 26 } |
34 | 27 |
35 void test_UnlinkedCombinator_shows() { | 28 void test_UnlinkedCombinator_isShow_true() { |
36 Uint8List bytes; | 29 Uint8List bytes = new UnlinkedCombinatorBuilder( |
37 { | 30 isShow: true, names: ['aaa', 'bbb', 'ccc']).toBytes(); |
38 fb.Builder fbBuilder = new fb.Builder(); | |
39 fb.Offset offset = | |
40 new UnlinkedCombinatorBuilder(shows: ['a', 'bb', 'ccc']) | |
41 .finish(fbBuilder); | |
42 bytes = fbBuilder.finish(offset); | |
43 } | |
44 | 31 |
45 var combinator = new UnlinkedCombinator(bytes); | 32 var combinator = new UnlinkedCombinator(bytes); |
46 expect(combinator.shows, ['a', 'bb', 'ccc']); | 33 expect(combinator.isShow, isTrue); |
47 expect(combinator.hides, isEmpty); | 34 expect(combinator.names, ['aaa', 'bbb', 'ccc']); |
48 } | 35 } |
49 | 36 |
50 void test_UnlinkedNamespaceDirective() { | 37 void test_UnlinkedNamespaceDirective() { |
51 Uint8List bytes; | 38 Uint8List bytes = new UnlinkedNamespaceDirectiveBuilder( |
52 { | 39 uri: 'package:foo/foo.dart', |
53 fb.Builder fbBuilder = new fb.Builder(); | 40 combinators: [ |
54 fb.Offset offset = new UnlinkedNamespaceDirectiveBuilder( | 41 new UnlinkedCombinatorBuilder(isShow: true, names: ['aaa']), |
55 uri: 'package:foo/foo.dart', | 42 new UnlinkedCombinatorBuilder(isShow: false, names: ['bbb', 'ccc']) |
56 combinators: [ | 43 ]).toBytes(); |
57 new UnlinkedCombinatorBuilder(shows: ['aaa']), | |
58 new UnlinkedCombinatorBuilder(hides: ['bbb', 'ccc']) | |
59 ]).finish(fbBuilder); | |
60 bytes = fbBuilder.finish(offset); | |
61 } | |
62 | 44 |
63 var directive = new UnlinkedNamespaceDirective(bytes); | 45 var directive = new UnlinkedNamespaceDirective(bytes); |
64 expect(directive.uri, 'package:foo/foo.dart'); | 46 expect(directive.uri, 'package:foo/foo.dart'); |
65 expect(directive.combinators, hasLength(2)); | 47 expect(directive.combinators, hasLength(2)); |
66 expect(directive.combinators[0].shows, ['aaa']); | 48 expect(directive.combinators[0].isShow, isTrue); |
67 expect(directive.combinators[0].hides, isEmpty); | 49 expect(directive.combinators[0].names, ['aaa']); |
68 expect(directive.combinators[1].shows, isEmpty); | 50 expect(directive.combinators[1].isShow, isFalse); |
69 expect(directive.combinators[1].hides, ['bbb', 'ccc']); | 51 expect(directive.combinators[1].names, ['bbb', 'ccc']); |
70 } | 52 } |
71 | 53 |
72 void test_UnlinkedUnit() { | 54 void test_UnlinkedUnit() { |
73 Uint8List bytes; | 55 Uint8List bytes = new UnlinkedUnitBuilder(apiSignature: [ |
74 { | 56 0, |
75 fb.Builder fbBuilder = new fb.Builder(); | 57 1, |
76 fb.Offset offset = new UnlinkedUnitBuilder(apiSignature: [ | 58 2, |
77 0, | 59 3, |
78 1, | 60 4 |
79 2, | 61 ], imports: [ |
80 3, | 62 new UnlinkedNamespaceDirectiveBuilder(uri: 'a.dart') |
81 4 | 63 ], exports: [ |
82 ], imports: [ | 64 new UnlinkedNamespaceDirectiveBuilder(uri: 'b.dart') |
83 new UnlinkedNamespaceDirectiveBuilder(uri: 'a.dart') | 65 ], parts: [ |
84 ], exports: [ | 66 'p1.dart', |
85 new UnlinkedNamespaceDirectiveBuilder(uri: 'b.dart') | 67 'p2.dart', |
86 ], parts: [ | 68 ], hasMixinApplication: true) |
87 new UnlinkedNamespaceDirectiveBuilder(uri: 'p1.dart'), | 69 .toBytes(); |
88 new UnlinkedNamespaceDirectiveBuilder(uri: 'p2.dart'), | |
89 ], hasMixinApplication: true) | |
90 .finish(fbBuilder); | |
91 bytes = fbBuilder.finish(offset); | |
92 } | |
93 | 70 |
94 var unit = new UnlinkedUnit(bytes); | 71 var unit = new UnlinkedUnit(bytes); |
95 expect(unit.apiSignature, [0, 1, 2, 3, 4]); | 72 expect(unit.apiSignature, [0, 1, 2, 3, 4]); |
96 | 73 |
97 expect(unit.imports, hasLength(1)); | 74 expect(unit.imports, hasLength(1)); |
98 expect(unit.imports[0].uri, 'a.dart'); | 75 expect(unit.imports[0].uri, 'a.dart'); |
99 | 76 |
100 expect(unit.exports, hasLength(1)); | 77 expect(unit.exports, hasLength(1)); |
101 expect(unit.exports[0].uri, 'b.dart'); | 78 expect(unit.exports[0].uri, 'b.dart'); |
102 | 79 |
103 expect(unit.parts, hasLength(2)); | 80 expect(unit.parts, ['p1.dart', 'p2.dart']); |
104 expect(unit.parts[0].uri, 'p1.dart'); | |
105 expect(unit.parts[1].uri, 'p2.dart'); | |
106 | 81 |
107 expect(unit.hasMixinApplication, isTrue); | 82 expect(unit.hasMixinApplication, isTrue); |
108 } | 83 } |
109 | 84 |
110 void test_UnlinkedUnit_hasMixinApplication_false() { | 85 void test_UnlinkedUnit_hasMixinApplication_false() { |
111 Uint8List bytes; | 86 Uint8List bytes = |
112 { | 87 new UnlinkedUnitBuilder(hasMixinApplication: false).toBytes(); |
113 fb.Builder fbBuilder = new fb.Builder(); | |
114 fb.Offset offset = | |
115 new UnlinkedUnitBuilder(hasMixinApplication: false).finish(fbBuilder); | |
116 bytes = fbBuilder.finish(offset); | |
117 } | |
118 | 88 |
119 var unit = new UnlinkedUnit(bytes); | 89 var unit = new UnlinkedUnit(bytes); |
120 expect(unit.hasMixinApplication, isFalse); | 90 expect(unit.hasMixinApplication, isFalse); |
121 } | 91 } |
122 } | 92 } |
OLD | NEW |