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

Side by Side Diff: pkg/js_ast/test/printer_callback_test.dart

Issue 2748103010: Run dartfmt on js_ast (Closed)
Patch Set: Created 3 years, 9 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/js_ast/lib/src/template.dart ('k') | pkg/js_ast/test/string_escape_test.dart » ('j') | 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 // Note: This test relies on LF line endings in the source file. 5 // Note: This test relies on LF line endings in the source file.
6 6
7 // Test that JS printer callbacks occur when expected. 7 // Test that JS printer callbacks occur when expected.
8 8
9 library js_ast.printer.callback_test; 9 library js_ast.printer.callback_test;
10 10
11 import 'package:js_ast/js_ast.dart'; 11 import 'package:js_ast/js_ast.dart';
12 import 'package:unittest/unittest.dart'; 12 import 'package:unittest/unittest.dart';
13 13
14 enum TestMode { 14 enum TestMode {
15 INPUT, 15 INPUT,
16 NONE, 16 NONE,
17 ENTER, 17 ENTER,
18 DELIMITER, 18 DELIMITER,
19 EXIT, 19 EXIT,
20 } 20 }
21 21
22 class TestCase { 22 class TestCase {
23 final Map<TestMode, String> data; 23 final Map<TestMode, String> data;
24 24
25 /// Map from template names to the inserted values. 25 /// Map from template names to the inserted values.
26 final Map<String, String> environment; 26 final Map<String, String> environment;
27 27
28 const TestCase( 28 const TestCase(this.data, [this.environment = const {}]);
29 this.data,
30 [this.environment = const {}]);
31 } 29 }
32 30
33 const List<TestCase> DATA = const <TestCase>[ 31 const List<TestCase> DATA = const <TestCase>[
34 const TestCase(const { 32 const TestCase(const {
35 TestMode.NONE: """ 33 TestMode.NONE: """
36 function(a, b) { 34 function(a, b) {
37 return null; 35 return null;
38 }""", 36 }""",
39 TestMode.ENTER: """ 37 TestMode.ENTER: """
40 @0function(@1a, @2b) @3{ 38 @0function(@1a, @2b) @3{
41 @4return @5null; 39 @4return @5null;
42 }""", 40 }""",
43 TestMode.DELIMITER: """ 41 TestMode.DELIMITER: """
44 function(a, b) { 42 function(a, b) {
45 return null; 43 return null;
46 @0}""", 44 @0}""",
47 TestMode.EXIT: """ 45 TestMode.EXIT: """
48 function(a@1, b@2) { 46 function(a@1, b@2) {
49 return null@5; 47 return null@5;
50 @4}@3@0""" 48 @4}@3@0"""
51 }), 49 }),
52
53 const TestCase(const { 50 const TestCase(const {
54 TestMode.NONE: """ 51 TestMode.NONE: """
55 function() { 52 function() {
56 if (true) { 53 if (true) {
57 foo1(); 54 foo1();
58 foo2(); 55 foo2();
59 } else if (false) { 56 } else if (false) {
60 bar1(); 57 bar1();
61 bar2(); 58 bar2();
62 } 59 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 @8 }@4 else if (false@12) { 98 @8 }@4 else if (false@12) {
102 bar1@16()@15; 99 bar1@16()@15;
103 @14 bar2@19()@18; 100 @14 bar2@19()@18;
104 @17 }@13 101 @17 }@13
105 @11@2 while (false@21) { 102 @11@2 while (false@21) {
106 baz3@25()@24; 103 baz3@25()@24;
107 @23 baz4@28()@27; 104 @23 baz4@28()@27;
108 @26 }@22 105 @26 }@22
109 @20}@1@0""", 106 @20}@1@0""",
110 }), 107 }),
111
112 const TestCase(const { 108 const TestCase(const {
113 TestMode.NONE: """ 109 TestMode.NONE: """
114 function() { 110 function() {
115 function foo() { 111 function foo() {
116 } 112 }
117 }""", 113 }""",
118 TestMode.ENTER: """ 114 TestMode.ENTER: """
119 @0function() @1{ 115 @0function() @1{
120 @2@3function @4foo() @5{ 116 @2@3function @4foo() @5{
121 } 117 }
122 }""", 118 }""",
123 TestMode.DELIMITER: """ 119 TestMode.DELIMITER: """
124 function() { 120 function() {
125 function foo() { 121 function foo() {
126 @3} 122 @3}
127 @0}""", 123 @0}""",
128 TestMode.EXIT: """ 124 TestMode.EXIT: """
129 function() { 125 function() {
130 function foo@4() { 126 function foo@4() {
131 }@5@3 127 }@5@3
132 @2}@1@0""" 128 @2}@1@0"""
133 }), 129 }),
134
135 const TestCase(const { 130 const TestCase(const {
136 TestMode.INPUT: """ 131 TestMode.INPUT: """
137 function() { 132 function() {
138 a['b']; 133 a['b'];
139 [1,, 2]; 134 [1,, 2];
140 }""", 135 }""",
141 TestMode.NONE: """ 136 TestMode.NONE: """
142 function() { 137 function() {
143 a.b; 138 a.b;
144 [1,, 2]; 139 [1,, 2];
145 }""", 140 }""",
146 TestMode.ENTER: """ 141 TestMode.ENTER: """
147 @0function() @1{ 142 @0function() @1{
148 @2@3@4a.@5b; 143 @2@3@4a.@5b;
149 @6@7[@81,@9, @102]; 144 @6@7[@81,@9, @102];
150 }""", 145 }""",
151 TestMode.DELIMITER: """ 146 TestMode.DELIMITER: """
152 function() { 147 function() {
153 a.b; 148 a.b;
154 [1,, 2]; 149 [1,, 2];
155 @0}""", 150 @0}""",
156 TestMode.EXIT: """ 151 TestMode.EXIT: """
157 function() { 152 function() {
158 a@4.b@5@3; 153 a@4.b@5@3;
159 @2 [1@8,,@9 2@10]@7; 154 @2 [1@8,,@9 2@10]@7;
160 @6}@1@0""", 155 @6}@1@0""",
161 }), 156 }),
162
163 const TestCase(const { 157 const TestCase(const {
164 TestMode.INPUT: "a.#nameTemplate = #nameTemplate", 158 TestMode.INPUT: "a.#nameTemplate = #nameTemplate",
165 TestMode.NONE: "a.nameValue = nameValue", 159 TestMode.NONE: "a.nameValue = nameValue",
166 TestMode.ENTER: "@0@1@2a.@3nameValue = @3nameValue", 160 TestMode.ENTER: "@0@1@2a.@3nameValue = @3nameValue",
167 TestMode.DELIMITER: "a.nameValue = nameValue", 161 TestMode.DELIMITER: "a.nameValue = nameValue",
168 TestMode.EXIT: "a@2.nameValue@3@1 = nameValue@3@0", 162 TestMode.EXIT: "a@2.nameValue@3@1 = nameValue@3@0",
169 }, const {'nameTemplate': 'nameValue'}), 163 }, const {
164 'nameTemplate': 'nameValue'
165 }),
170 ]; 166 ];
171 167
172 class FixedName extends Name { 168 class FixedName extends Name {
173 final String name; 169 final String name;
174 String get key => name; 170 String get key => name;
175 171
176 FixedName(this.name); 172 FixedName(this.name);
177 173
178 @override 174 @override
179 int compareTo(other) => 0; 175 int compareTo(other) => 0;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 210
215 String tag(int value) => '@$value'; 211 String tag(int value) => '@$value';
216 212
217 void enterNode(Node node, int startPosition) { 213 void enterNode(Node node, int startPosition) {
218 int value = id(node); 214 int value = id(node);
219 if (mode == TestMode.ENTER) { 215 if (mode == TestMode.ENTER) {
220 tagMap.putIfAbsent(startPosition, () => []).add(tag(value)); 216 tagMap.putIfAbsent(startPosition, () => []).add(tag(value));
221 } 217 }
222 } 218 }
223 219
224 void exitNode(Node node, 220 void exitNode(
225 int startPosition, 221 Node node, int startPosition, int endPosition, int delimiterPosition) {
226 int endPosition,
227 int delimiterPosition) {
228 int value = id(node); 222 int value = id(node);
229 if (mode == TestMode.DELIMITER && delimiterPosition != null) { 223 if (mode == TestMode.DELIMITER && delimiterPosition != null) {
230 tagMap.putIfAbsent(delimiterPosition, () => []).add(tag(value)); 224 tagMap.putIfAbsent(delimiterPosition, () => []).add(tag(value));
231 } else if (mode == TestMode.EXIT) { 225 } else if (mode == TestMode.EXIT) {
232 tagMap.putIfAbsent(endPosition, () => []).add(tag(value)); 226 tagMap.putIfAbsent(endPosition, () => []).add(tag(value));
233 } 227 }
234 } 228 }
235 229
236 String getText() { 230 String getText() {
237 String text = super.getText(); 231 String text = super.getText();
238 int offset = 0; 232 int offset = 0;
239 StringBuffer sb = new StringBuffer(); 233 StringBuffer sb = new StringBuffer();
240 for (int position in tagMap.keys.toList()..sort()) { 234 for (int position in tagMap.keys.toList()..sort()) {
241 if (offset < position) { 235 if (offset < position) {
242 sb.write(text.substring(offset, position)); 236 sb.write(text.substring(offset, position));
243 } 237 }
244 tagMap[position].forEach((String tag) => sb.write(tag)); 238 tagMap[position].forEach((String tag) => sb.write(tag));
245 offset = position; 239 offset = position;
246 } 240 }
247 if (offset < text.length) { 241 if (offset < text.length) {
248 sb.write(text.substring(offset)); 242 sb.write(text.substring(offset));
249 } 243 }
250 return sb.toString(); 244 return sb.toString();
251 } 245 }
252 } 246 }
253 247
254 void main() { 248 void main() {
255 DATA.forEach(check); 249 DATA.forEach(check);
256 } 250 }
OLDNEW
« no previous file with comments | « pkg/js_ast/lib/src/template.dart ('k') | pkg/js_ast/test/string_escape_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698