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

Side by Side Diff: pkg/front_end/test/src/incremental/format_test.dart

Issue 2936833003: Fix for mismatch between existing FileState data and UnlinkedUnit. (Closed)
Patch Set: Created 3 years, 6 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
« no previous file with comments | « pkg/front_end/lib/src/incremental/format.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) 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 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/incremental/format.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698