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

Side by Side Diff: pkg/analysis_server/test/analysis/notification_outline_test.dart

Issue 1478513002: Use async/await in all analysis domain tests. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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
OLDNEW
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 library test.analysis.notification.outline; 5 library test.analysis.notification.outline;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; 9 import 'package:analysis_server/plugin/protocol/protocol.dart';
10 import 'package:analysis_server/src/constants.dart'; 10 import 'package:analysis_server/src/constants.dart';
(...skipping 29 matching lines...) Expand all
40 } 40 }
41 } 41 }
42 } 42 }
43 43
44 @override 44 @override
45 void setUp() { 45 void setUp() {
46 super.setUp(); 46 super.setUp();
47 createProject(); 47 createProject();
48 } 48 }
49 49
50 test_afterAnalysis() { 50 test_afterAnalysis() async {
51 addTestFile(''' 51 addTestFile('''
52 class AAA { 52 class AAA {
53 } 53 }
54 class BBB { 54 class BBB {
55 } 55 }
56 '''); 56 ''');
57 return waitForTasksFinished().then((_) { 57 await waitForTasksFinished();
58 expect(outline, isNull); 58 expect(outline, isNull);
59 return prepareOutline().then((_) { 59 await prepareOutline();
60 Outline unitOutline = outline; 60 Outline unitOutline = outline;
61 List<Outline> outlines = unitOutline.children; 61 List<Outline> outlines = unitOutline.children;
62 expect(outlines, hasLength(2)); 62 expect(outlines, hasLength(2));
63 });
64 });
65 } 63 }
66 64
67 test_class() { 65 test_class() async {
68 addTestFile(''' 66 addTestFile('''
69 class A<K, V> { 67 class A<K, V> {
70 int fa, fb; 68 int fa, fb;
71 String fc; 69 String fc;
72 A(int i, String s); 70 A(int i, String s);
73 A.name(num p); 71 A.name(num p);
74 A._privateName(num p); 72 A._privateName(num p);
75 static String ma(int pa) => null; 73 static String ma(int pa) => null;
76 _mb(int pb); 74 _mb(int pb);
77 String get propA => null; 75 String get propA => null;
78 set propB(int v) {} 76 set propB(int v) {}
79 } 77 }
80 class B { 78 class B {
81 B(int p); 79 B(int p);
82 }"); 80 }");
83 '''); 81 ''');
84 return prepareOutline().then((_) { 82 await prepareOutline();
85 Outline unitOutline = outline; 83 Outline unitOutline = outline;
86 List<Outline> topOutlines = unitOutline.children; 84 List<Outline> topOutlines = unitOutline.children;
87 expect(topOutlines, hasLength(2)); 85 expect(topOutlines, hasLength(2));
88 // A 86 // A
89 { 87 {
90 Outline outline_A = topOutlines[0]; 88 Outline outline_A = topOutlines[0];
91 Element element_A = outline_A.element; 89 Element element_A = outline_A.element;
92 expect(element_A.kind, ElementKind.CLASS); 90 expect(element_A.kind, ElementKind.CLASS);
93 expect(element_A.name, "A"); 91 expect(element_A.name, "A");
94 expect(element_A.typeParameters, "<K, V>"); 92 expect(element_A.typeParameters, "<K, V>");
95 { 93 {
96 Location location = element_A.location; 94 Location location = element_A.location;
97 expect(location.offset, testCode.indexOf("A<K, V> {")); 95 expect(location.offset, testCode.indexOf("A<K, V> {"));
98 expect(location.length, 1); 96 expect(location.length, 1);
99 } 97 }
100 expect(element_A.parameters, null); 98 expect(element_A.parameters, null);
101 expect(element_A.returnType, null); 99 expect(element_A.returnType, null);
102 // A children 100 // A children
103 List<Outline> outlines_A = outline_A.children; 101 List<Outline> outlines_A = outline_A.children;
104 expect(outlines_A, hasLength(10)); 102 expect(outlines_A, hasLength(10));
105 { 103 {
106 Outline outline = outlines_A[0]; 104 Outline outline = outlines_A[0];
107 Element element = outline.element; 105 Element element = outline.element;
108 expect(element.kind, ElementKind.FIELD); 106 expect(element.kind, ElementKind.FIELD);
109 expect(element.name, "fa"); 107 expect(element.name, "fa");
110 expect(element.parameters, isNull); 108 expect(element.parameters, isNull);
111 expect(element.returnType, "int"); 109 expect(element.returnType, "int");
112 } 110 }
113 { 111 {
114 Outline outline = outlines_A[1]; 112 Outline outline = outlines_A[1];
115 Element element = outline.element; 113 Element element = outline.element;
116 expect(element.kind, ElementKind.FIELD); 114 expect(element.kind, ElementKind.FIELD);
117 expect(element.name, "fb"); 115 expect(element.name, "fb");
118 expect(element.parameters, isNull); 116 expect(element.parameters, isNull);
119 expect(element.returnType, "int"); 117 expect(element.returnType, "int");
120 } 118 }
121 { 119 {
122 Outline outline = outlines_A[2]; 120 Outline outline = outlines_A[2];
123 Element element = outline.element; 121 Element element = outline.element;
124 expect(element.kind, ElementKind.FIELD); 122 expect(element.kind, ElementKind.FIELD);
125 expect(element.name, "fc"); 123 expect(element.name, "fc");
126 expect(element.parameters, isNull); 124 expect(element.parameters, isNull);
127 expect(element.returnType, "String"); 125 expect(element.returnType, "String");
128 } 126 }
129 { 127 {
130 Outline outline = outlines_A[3]; 128 Outline outline = outlines_A[3];
131 Element element = outline.element; 129 Element element = outline.element;
132 expect(element.kind, ElementKind.CONSTRUCTOR); 130 expect(element.kind, ElementKind.CONSTRUCTOR);
133 expect(element.name, "A"); 131 expect(element.name, "A");
134 { 132 {
135 Location location = element.location; 133 Location location = element.location;
136 expect(location.offset, testCode.indexOf("A(int i, String s);")); 134 expect(location.offset, testCode.indexOf("A(int i, String s);"));
137 expect(location.length, "A".length); 135 expect(location.length, "A".length);
138 } 136 }
139 expect(element.parameters, "(int i, String s)"); 137 expect(element.parameters, "(int i, String s)");
140 expect(element.returnType, isNull); 138 expect(element.returnType, isNull);
141 expect(element.isAbstract, isFalse); 139 expect(element.isAbstract, isFalse);
142 expect(element.isStatic, isFalse); 140 expect(element.isStatic, isFalse);
143 } 141 }
144 { 142 {
145 Outline outline = outlines_A[4]; 143 Outline outline = outlines_A[4];
146 Element element = outline.element; 144 Element element = outline.element;
147 expect(element.kind, ElementKind.CONSTRUCTOR); 145 expect(element.kind, ElementKind.CONSTRUCTOR);
148 expect(element.name, "A.name"); 146 expect(element.name, "A.name");
149 { 147 {
150 Location location = element.location; 148 Location location = element.location;
151 expect(location.offset, testCode.indexOf("name(num p);")); 149 expect(location.offset, testCode.indexOf("name(num p);"));
152 expect(location.length, "name".length); 150 expect(location.length, "name".length);
153 } 151 }
154 expect(element.parameters, "(num p)"); 152 expect(element.parameters, "(num p)");
155 expect(element.returnType, isNull); 153 expect(element.returnType, isNull);
156 expect(element.isAbstract, isFalse); 154 expect(element.isAbstract, isFalse);
157 expect(element.isStatic, isFalse); 155 expect(element.isStatic, isFalse);
158 } 156 }
159 { 157 {
160 Outline outline = outlines_A[5]; 158 Outline outline = outlines_A[5];
161 Element element = outline.element; 159 Element element = outline.element;
162 expect(element.kind, ElementKind.CONSTRUCTOR); 160 expect(element.kind, ElementKind.CONSTRUCTOR);
163 expect(element.name, "A._privateName"); 161 expect(element.name, "A._privateName");
164 { 162 {
165 Location location = element.location; 163 Location location = element.location;
166 expect(location.offset, testCode.indexOf("_privateName(num p);")); 164 expect(location.offset, testCode.indexOf("_privateName(num p);"));
167 expect(location.length, "_privateName".length); 165 expect(location.length, "_privateName".length);
168 } 166 }
169 expect(element.parameters, "(num p)"); 167 expect(element.parameters, "(num p)");
170 expect(element.returnType, isNull); 168 expect(element.returnType, isNull);
171 expect(element.isAbstract, isFalse); 169 expect(element.isAbstract, isFalse);
172 expect(element.isStatic, isFalse); 170 expect(element.isStatic, isFalse);
173 } 171 }
174 { 172 {
175 Outline outline = outlines_A[6]; 173 Outline outline = outlines_A[6];
176 Element element = outline.element; 174 Element element = outline.element;
177 expect(element.kind, ElementKind.METHOD); 175 expect(element.kind, ElementKind.METHOD);
178 expect(element.name, "ma"); 176 expect(element.name, "ma");
179 { 177 {
180 Location location = element.location; 178 Location location = element.location;
181 expect(location.offset, testCode.indexOf("ma(int pa) => null;")); 179 expect(location.offset, testCode.indexOf("ma(int pa) => null;"));
182 expect(location.length, "ma".length); 180 expect(location.length, "ma".length);
183 } 181 }
184 expect(element.parameters, "(int pa)"); 182 expect(element.parameters, "(int pa)");
185 expect(element.returnType, "String"); 183 expect(element.returnType, "String");
186 expect(element.isAbstract, isFalse); 184 expect(element.isAbstract, isFalse);
187 expect(element.isStatic, isTrue); 185 expect(element.isStatic, isTrue);
188 } 186 }
189 { 187 {
190 Outline outline = outlines_A[7]; 188 Outline outline = outlines_A[7];
191 Element element = outline.element; 189 Element element = outline.element;
192 expect(element.kind, ElementKind.METHOD); 190 expect(element.kind, ElementKind.METHOD);
193 expect(element.name, "_mb"); 191 expect(element.name, "_mb");
194 { 192 {
195 Location location = element.location; 193 Location location = element.location;
196 expect(location.offset, testCode.indexOf("_mb(int pb);")); 194 expect(location.offset, testCode.indexOf("_mb(int pb);"));
197 expect(location.length, "_mb".length); 195 expect(location.length, "_mb".length);
198 } 196 }
199 expect(element.parameters, "(int pb)"); 197 expect(element.parameters, "(int pb)");
200 expect(element.returnType, ""); 198 expect(element.returnType, "");
201 expect(element.isAbstract, isTrue); 199 expect(element.isAbstract, isTrue);
202 expect(element.isStatic, isFalse); 200 expect(element.isStatic, isFalse);
203 } 201 }
204 { 202 {
205 Outline outline = outlines_A[8]; 203 Outline outline = outlines_A[8];
206 Element element = outline.element; 204 Element element = outline.element;
207 expect(element.kind, ElementKind.GETTER); 205 expect(element.kind, ElementKind.GETTER);
208 expect(element.name, "propA"); 206 expect(element.name, "propA");
209 { 207 {
210 Location location = element.location; 208 Location location = element.location;
211 expect(location.offset, testCode.indexOf("propA => null;")); 209 expect(location.offset, testCode.indexOf("propA => null;"));
212 expect(location.length, "propA".length); 210 expect(location.length, "propA".length);
213 } 211 }
214 expect(element.parameters, isNull); 212 expect(element.parameters, isNull);
215 expect(element.returnType, "String"); 213 expect(element.returnType, "String");
216 } 214 }
217 { 215 {
218 Outline outline = outlines_A[9]; 216 Outline outline = outlines_A[9];
219 Element element = outline.element; 217 Element element = outline.element;
220 expect(element.kind, ElementKind.SETTER); 218 expect(element.kind, ElementKind.SETTER);
221 expect(element.name, "propB"); 219 expect(element.name, "propB");
222 { 220 {
223 Location location = element.location; 221 Location location = element.location;
224 expect(location.offset, testCode.indexOf("propB(int v) {}")); 222 expect(location.offset, testCode.indexOf("propB(int v) {}"));
225 expect(location.length, "propB".length); 223 expect(location.length, "propB".length);
226 } 224 }
227 expect(element.parameters, "(int v)"); 225 expect(element.parameters, "(int v)");
228 expect(element.returnType, ""); 226 expect(element.returnType, "");
229 } 227 }
230 } 228 }
231 // B 229 // B
232 { 230 {
233 Outline outline_B = topOutlines[1]; 231 Outline outline_B = topOutlines[1];
234 Element element_B = outline_B.element; 232 Element element_B = outline_B.element;
235 expect(element_B.kind, ElementKind.CLASS); 233 expect(element_B.kind, ElementKind.CLASS);
236 expect(element_B.name, "B"); 234 expect(element_B.name, "B");
237 expect(element_B.typeParameters, isNull); 235 expect(element_B.typeParameters, isNull);
238 { 236 {
239 Location location = element_B.location; 237 Location location = element_B.location;
240 expect(location.offset, testCode.indexOf("B {")); 238 expect(location.offset, testCode.indexOf("B {"));
241 expect(location.length, 1); 239 expect(location.length, 1);
242 } 240 }
243 expect(element_B.parameters, null); 241 expect(element_B.parameters, null);
244 expect(element_B.returnType, null); 242 expect(element_B.returnType, null);
245 // B children 243 // B children
246 List<Outline> outlines_B = outline_B.children; 244 List<Outline> outlines_B = outline_B.children;
247 expect(outlines_B, hasLength(1)); 245 expect(outlines_B, hasLength(1));
248 { 246 {
249 Outline outline = outlines_B[0]; 247 Outline outline = outlines_B[0];
250 Element element = outline.element; 248 Element element = outline.element;
251 expect(element.kind, ElementKind.CONSTRUCTOR); 249 expect(element.kind, ElementKind.CONSTRUCTOR);
252 expect(element.name, "B"); 250 expect(element.name, "B");
253 { 251 {
254 Location location = element.location; 252 Location location = element.location;
255 expect(location.offset, testCode.indexOf("B(int p);")); 253 expect(location.offset, testCode.indexOf("B(int p);"));
256 expect(location.length, "B".length); 254 expect(location.length, "B".length);
257 } 255 }
258 expect(element.parameters, "(int p)"); 256 expect(element.parameters, "(int p)");
259 expect(element.returnType, isNull); 257 expect(element.returnType, isNull);
260 } 258 }
261 } 259 }
262 });
263 } 260 }
264 261
265 test_enum() { 262 test_enum() async {
266 addTestFile(''' 263 addTestFile('''
267 enum MyEnum { 264 enum MyEnum {
268 A, B, C 265 A, B, C
269 } 266 }
270 '''); 267 ''');
271 return prepareOutline().then((_) { 268 await prepareOutline();
272 Outline unitOutline = outline; 269 Outline unitOutline = outline;
273 List<Outline> topOutlines = unitOutline.children; 270 List<Outline> topOutlines = unitOutline.children;
274 expect(topOutlines, hasLength(1)); 271 expect(topOutlines, hasLength(1));
275 // MyEnum 272 // MyEnum
276 { 273 {
277 Outline outline_MyEnum = topOutlines[0]; 274 Outline outline_MyEnum = topOutlines[0];
278 Element element_MyEnum = outline_MyEnum.element; 275 Element element_MyEnum = outline_MyEnum.element;
279 expect(element_MyEnum.kind, ElementKind.ENUM); 276 expect(element_MyEnum.kind, ElementKind.ENUM);
280 expect(element_MyEnum.name, "MyEnum"); 277 expect(element_MyEnum.name, "MyEnum");
281 { 278 {
282 Location location = element_MyEnum.location; 279 Location location = element_MyEnum.location;
283 expect(location.offset, testCode.indexOf("MyEnum {")); 280 expect(location.offset, testCode.indexOf("MyEnum {"));
284 expect(location.length, 'MyEnum'.length); 281 expect(location.length, 'MyEnum'.length);
285 } 282 }
286 expect(element_MyEnum.parameters, null); 283 expect(element_MyEnum.parameters, null);
287 expect(element_MyEnum.returnType, null); 284 expect(element_MyEnum.returnType, null);
288 // MyEnum children 285 // MyEnum children
289 List<Outline> outlines_MyEnum = outline_MyEnum.children; 286 List<Outline> outlines_MyEnum = outline_MyEnum.children;
290 expect(outlines_MyEnum, hasLength(3)); 287 expect(outlines_MyEnum, hasLength(3));
291 _isEnumConstant(outlines_MyEnum[0], 'A'); 288 _isEnumConstant(outlines_MyEnum[0], 'A');
292 _isEnumConstant(outlines_MyEnum[1], 'B'); 289 _isEnumConstant(outlines_MyEnum[1], 'B');
293 _isEnumConstant(outlines_MyEnum[2], 'C'); 290 _isEnumConstant(outlines_MyEnum[2], 'C');
294 } 291 }
295 });
296 } 292 }
297 293
298 /** 294 /**
299 * Code like this caused NPE in the past. 295 * Code like this caused NPE in the past.
300 * 296 *
301 * https://code.google.com/p/dart/issues/detail?id=21373 297 * https://code.google.com/p/dart/issues/detail?id=21373
302 */ 298 */
303 test_invalidGetterInConstructor() { 299 test_invalidGetterInConstructor() async {
304 addTestFile(''' 300 addTestFile('''
305 class A { 301 class A {
306 A() { 302 A() {
307 get badGetter { 303 get badGetter {
308 const int CONST = 0; 304 const int CONST = 0;
309 } 305 }
310 } 306 }
311 } 307 }
312 '''); 308 ''');
313 return prepareOutline().then((_) { 309 await prepareOutline();
314 expect(outline, isNotNull); 310 expect(outline, isNotNull);
315 });
316 } 311 }
317 312
318 test_libraryName_hasLibraryDirective() async { 313 test_libraryName_hasLibraryDirective() async {
319 addTestFile(''' 314 addTestFile('''
320 library my.lib; 315 library my.lib;
321 '''); 316 ''');
322 await prepareOutline(); 317 await prepareOutline();
323 expect(fileKind, FileKind.LIBRARY); 318 expect(fileKind, FileKind.LIBRARY);
324 expect(libraryName, 'my.lib'); 319 expect(libraryName, 'my.lib');
325 } 320 }
(...skipping 19 matching lines...) Expand all
345 340
346 test_libraryName_noDirectives() async { 341 test_libraryName_noDirectives() async {
347 addTestFile(''' 342 addTestFile('''
348 class A {} 343 class A {}
349 '''); 344 ''');
350 await prepareOutline(); 345 await prepareOutline();
351 expect(fileKind, FileKind.LIBRARY); 346 expect(fileKind, FileKind.LIBRARY);
352 expect(libraryName, isNull); 347 expect(libraryName, isNull);
353 } 348 }
354 349
355 test_localFunctions() { 350 test_localFunctions() async {
356 addTestFile(''' 351 addTestFile('''
357 class A { 352 class A {
358 A() { 353 A() {
359 int local_A() {} 354 int local_A() {}
360 } 355 }
361 m() { 356 m() {
362 local_m() {} 357 local_m() {}
363 } 358 }
364 } 359 }
365 f() { 360 f() {
366 local_f1(int i) {} 361 local_f1(int i) {}
367 local_f2(String s) { 362 local_f2(String s) {
368 local_f21(int p) {} 363 local_f21(int p) {}
369 } 364 }
370 } 365 }
371 '''); 366 ''');
372 return prepareOutline().then((_) { 367 await prepareOutline();
373 Outline unitOutline = outline; 368 Outline unitOutline = outline;
374 List<Outline> topOutlines = unitOutline.children; 369 List<Outline> topOutlines = unitOutline.children;
375 expect(topOutlines, hasLength(2)); 370 expect(topOutlines, hasLength(2));
376 // A 371 // A
377 { 372 {
378 Outline outline_A = topOutlines[0]; 373 Outline outline_A = topOutlines[0];
379 Element element_A = outline_A.element; 374 Element element_A = outline_A.element;
380 expect(element_A.kind, ElementKind.CLASS); 375 expect(element_A.kind, ElementKind.CLASS);
381 expect(element_A.name, "A"); 376 expect(element_A.name, "A");
382 { 377 {
383 Location location = element_A.location; 378 Location location = element_A.location;
384 expect(location.offset, testCode.indexOf("A {")); 379 expect(location.offset, testCode.indexOf("A {"));
380 expect(location.length, "A".length);
381 }
382 expect(element_A.parameters, null);
383 expect(element_A.returnType, null);
384 // A children
385 List<Outline> outlines_A = outline_A.children;
386 expect(outlines_A, hasLength(2));
387 {
388 Outline constructorOutline = outlines_A[0];
389 Element constructorElement = constructorOutline.element;
390 expect(constructorElement.kind, ElementKind.CONSTRUCTOR);
391 expect(constructorElement.name, "A");
392 {
393 Location location = constructorElement.location;
394 expect(location.offset, testCode.indexOf("A() {"));
385 expect(location.length, "A".length); 395 expect(location.length, "A".length);
386 } 396 }
387 expect(element_A.parameters, null); 397 expect(constructorElement.parameters, "()");
388 expect(element_A.returnType, null); 398 expect(constructorElement.returnType, isNull);
389 // A children 399 // local function
390 List<Outline> outlines_A = outline_A.children; 400 List<Outline> outlines_constructor = constructorOutline.children;
391 expect(outlines_A, hasLength(2)); 401 expect(outlines_constructor, hasLength(1));
392 { 402 {
393 Outline constructorOutline = outlines_A[0]; 403 Outline outline = outlines_constructor[0];
394 Element constructorElement = constructorOutline.element; 404 Element element = outline.element;
395 expect(constructorElement.kind, ElementKind.CONSTRUCTOR); 405 expect(element.kind, ElementKind.FUNCTION);
396 expect(constructorElement.name, "A"); 406 expect(element.name, "local_A");
397 { 407 {
398 Location location = constructorElement.location; 408 Location location = element.location;
399 expect(location.offset, testCode.indexOf("A() {")); 409 expect(location.offset, testCode.indexOf("local_A() {}"));
400 expect(location.length, "A".length); 410 expect(location.length, "local_A".length);
401 } 411 }
402 expect(constructorElement.parameters, "()"); 412 expect(element.parameters, "()");
403 expect(constructorElement.returnType, isNull); 413 expect(element.returnType, "int");
404 // local function 414 }
405 List<Outline> outlines_constructor = constructorOutline.children; 415 }
406 expect(outlines_constructor, hasLength(1)); 416 {
417 Outline outline_m = outlines_A[1];
418 Element element_m = outline_m.element;
419 expect(element_m.kind, ElementKind.METHOD);
420 expect(element_m.name, "m");
421 {
422 Location location = element_m.location;
423 expect(location.offset, testCode.indexOf("m() {"));
424 expect(location.length, "m".length);
425 }
426 expect(element_m.parameters, "()");
427 expect(element_m.returnType, "");
428 // local function
429 List<Outline> methodChildren = outline_m.children;
430 expect(methodChildren, hasLength(1));
431 {
432 Outline outline = methodChildren[0];
433 Element element = outline.element;
434 expect(element.kind, ElementKind.FUNCTION);
435 expect(element.name, "local_m");
407 { 436 {
408 Outline outline = outlines_constructor[0]; 437 Location location = element.location;
409 Element element = outline.element; 438 expect(location.offset, testCode.indexOf("local_m() {}"));
410 expect(element.kind, ElementKind.FUNCTION); 439 expect(location.length, "local_m".length);
411 expect(element.name, "local_A");
412 {
413 Location location = element.location;
414 expect(location.offset, testCode.indexOf("local_A() {}"));
415 expect(location.length, "local_A".length);
416 }
417 expect(element.parameters, "()");
418 expect(element.returnType, "int");
419 } 440 }
420 } 441 expect(element.parameters, "()");
421 { 442 expect(element.returnType, "");
422 Outline outline_m = outlines_A[1]; 443 }
423 Element element_m = outline_m.element; 444 }
424 expect(element_m.kind, ElementKind.METHOD); 445 }
425 expect(element_m.name, "m"); 446 // f()
447 {
448 Outline outline_f = topOutlines[1];
449 Element element_f = outline_f.element;
450 expect(element_f.kind, ElementKind.FUNCTION);
451 expect(element_f.name, "f");
452 {
453 Location location = element_f.location;
454 expect(location.offset, testCode.indexOf("f() {"));
455 expect(location.length, "f".length);
456 }
457 expect(element_f.parameters, "()");
458 expect(element_f.returnType, "");
459 // f() children
460 List<Outline> outlines_f = outline_f.children;
461 expect(outlines_f, hasLength(2));
462 {
463 Outline outline_f1 = outlines_f[0];
464 Element element_f1 = outline_f1.element;
465 expect(element_f1.kind, ElementKind.FUNCTION);
466 expect(element_f1.name, "local_f1");
467 {
468 Location location = element_f1.location;
469 expect(location.offset, testCode.indexOf("local_f1(int i) {}"));
470 expect(location.length, "local_f1".length);
471 }
472 expect(element_f1.parameters, "(int i)");
473 expect(element_f1.returnType, "");
474 }
475 {
476 Outline outline_f2 = outlines_f[1];
477 Element element_f2 = outline_f2.element;
478 expect(element_f2.kind, ElementKind.FUNCTION);
479 expect(element_f2.name, "local_f2");
480 {
481 Location location = element_f2.location;
482 expect(location.offset, testCode.indexOf("local_f2(String s) {"));
483 expect(location.length, "local_f2".length);
484 }
485 expect(element_f2.parameters, "(String s)");
486 expect(element_f2.returnType, "");
487 // local_f2() local function
488 List<Outline> outlines_f2 = outline_f2.children;
489 expect(outlines_f2, hasLength(1));
490 {
491 Outline outline_f21 = outlines_f2[0];
492 Element element_f21 = outline_f21.element;
493 expect(element_f21.kind, ElementKind.FUNCTION);
494 expect(element_f21.name, "local_f21");
426 { 495 {
427 Location location = element_m.location; 496 Location location = element_f21.location;
428 expect(location.offset, testCode.indexOf("m() {")); 497 expect(location.offset, testCode.indexOf("local_f21(int p) {"));
429 expect(location.length, "m".length); 498 expect(location.length, "local_f21".length);
430 } 499 }
431 expect(element_m.parameters, "()"); 500 expect(element_f21.parameters, "(int p)");
432 expect(element_m.returnType, ""); 501 expect(element_f21.returnType, "");
433 // local function 502 }
434 List<Outline> methodChildren = outline_m.children; 503 }
435 expect(methodChildren, hasLength(1)); 504 }
436 {
437 Outline outline = methodChildren[0];
438 Element element = outline.element;
439 expect(element.kind, ElementKind.FUNCTION);
440 expect(element.name, "local_m");
441 {
442 Location location = element.location;
443 expect(location.offset, testCode.indexOf("local_m() {}"));
444 expect(location.length, "local_m".length);
445 }
446 expect(element.parameters, "()");
447 expect(element.returnType, "");
448 }
449 }
450 }
451 // f()
452 {
453 Outline outline_f = topOutlines[1];
454 Element element_f = outline_f.element;
455 expect(element_f.kind, ElementKind.FUNCTION);
456 expect(element_f.name, "f");
457 {
458 Location location = element_f.location;
459 expect(location.offset, testCode.indexOf("f() {"));
460 expect(location.length, "f".length);
461 }
462 expect(element_f.parameters, "()");
463 expect(element_f.returnType, "");
464 // f() children
465 List<Outline> outlines_f = outline_f.children;
466 expect(outlines_f, hasLength(2));
467 {
468 Outline outline_f1 = outlines_f[0];
469 Element element_f1 = outline_f1.element;
470 expect(element_f1.kind, ElementKind.FUNCTION);
471 expect(element_f1.name, "local_f1");
472 {
473 Location location = element_f1.location;
474 expect(location.offset, testCode.indexOf("local_f1(int i) {}"));
475 expect(location.length, "local_f1".length);
476 }
477 expect(element_f1.parameters, "(int i)");
478 expect(element_f1.returnType, "");
479 }
480 {
481 Outline outline_f2 = outlines_f[1];
482 Element element_f2 = outline_f2.element;
483 expect(element_f2.kind, ElementKind.FUNCTION);
484 expect(element_f2.name, "local_f2");
485 {
486 Location location = element_f2.location;
487 expect(location.offset, testCode.indexOf("local_f2(String s) {"));
488 expect(location.length, "local_f2".length);
489 }
490 expect(element_f2.parameters, "(String s)");
491 expect(element_f2.returnType, "");
492 // local_f2() local function
493 List<Outline> outlines_f2 = outline_f2.children;
494 expect(outlines_f2, hasLength(1));
495 {
496 Outline outline_f21 = outlines_f2[0];
497 Element element_f21 = outline_f21.element;
498 expect(element_f21.kind, ElementKind.FUNCTION);
499 expect(element_f21.name, "local_f21");
500 {
501 Location location = element_f21.location;
502 expect(location.offset, testCode.indexOf("local_f21(int p) {"));
503 expect(location.length, "local_f21".length);
504 }
505 expect(element_f21.parameters, "(int p)");
506 expect(element_f21.returnType, "");
507 }
508 }
509 }
510 });
511 } 505 }
512 506
513 test_sourceRange_inClass() { 507 test_sourceRange_inClass() async {
514 addTestFile(''' 508 addTestFile('''
515 class A { // leftA 509 class A { // leftA
516 int methodA() {} // endA 510 int methodA() {} // endA
517 int methodB() {} // endB 511 int methodB() {} // endB
518 } 512 }
519 '''); 513 ''');
520 return prepareOutline().then((_) { 514 await prepareOutline();
521 Outline unitOutline = outline; 515 Outline unitOutline = outline;
522 List<Outline> outlines = unitOutline.children[0].children; 516 List<Outline> outlines = unitOutline.children[0].children;
523 expect(outlines, hasLength(2)); 517 expect(outlines, hasLength(2));
524 // methodA 518 // methodA
525 { 519 {
526 Outline outline = outlines[0]; 520 Outline outline = outlines[0];
527 Element element = outline.element; 521 Element element = outline.element;
528 expect(element.kind, ElementKind.METHOD); 522 expect(element.kind, ElementKind.METHOD);
529 expect(element.name, "methodA"); 523 expect(element.name, "methodA");
530 { 524 {
531 int offset = testCode.indexOf(" // leftA"); 525 int offset = testCode.indexOf(" // leftA");
532 int end = testCode.indexOf(" // endA"); 526 int end = testCode.indexOf(" // endA");
533 expect(outline.offset, offset); 527 expect(outline.offset, offset);
534 expect(outline.length, end - offset); 528 expect(outline.length, end - offset);
535 } 529 }
536 } 530 }
537 // methodB 531 // methodB
538 { 532 {
539 Outline outline = outlines[1]; 533 Outline outline = outlines[1];
540 Element element = outline.element; 534 Element element = outline.element;
541 expect(element.kind, ElementKind.METHOD); 535 expect(element.kind, ElementKind.METHOD);
542 expect(element.name, "methodB"); 536 expect(element.name, "methodB");
543 { 537 {
544 int offset = testCode.indexOf(" // endA"); 538 int offset = testCode.indexOf(" // endA");
545 int end = testCode.indexOf(" // endB"); 539 int end = testCode.indexOf(" // endB");
546 expect(outline.offset, offset); 540 expect(outline.offset, offset);
547 expect(outline.length, end - offset); 541 expect(outline.length, end - offset);
548 } 542 }
549 } 543 }
550 });
551 } 544 }
552 545
553 test_sourceRange_inClass_inVariableList() { 546 test_sourceRange_inClass_inVariableList() async {
554 addTestFile(''' 547 addTestFile('''
555 class A { // leftA 548 class A { // leftA
556 int fieldA, fieldB, fieldC; // marker 549 int fieldA, fieldB, fieldC; // marker
557 int fieldD; // marker2 550 int fieldD; // marker2
558 } 551 }
559 '''); 552 ''');
560 return prepareOutline().then((_) { 553 await prepareOutline();
561 Outline unitOutline = outline; 554 Outline unitOutline = outline;
562 List<Outline> outlines = unitOutline.children[0].children; 555 List<Outline> outlines = unitOutline.children[0].children;
563 expect(outlines, hasLength(4)); 556 expect(outlines, hasLength(4));
564 // fieldA 557 // fieldA
565 { 558 {
566 Outline outline = outlines[0]; 559 Outline outline = outlines[0];
567 Element element = outline.element; 560 Element element = outline.element;
568 expect(element.kind, ElementKind.FIELD); 561 expect(element.kind, ElementKind.FIELD);
569 expect(element.name, "fieldA"); 562 expect(element.name, "fieldA");
570 { 563 {
571 int offset = testCode.indexOf(" // leftA"); 564 int offset = testCode.indexOf(" // leftA");
572 int end = testCode.indexOf(", fieldB"); 565 int end = testCode.indexOf(", fieldB");
573 expect(outline.offset, offset); 566 expect(outline.offset, offset);
574 expect(outline.length, end - offset); 567 expect(outline.length, end - offset);
575 } 568 }
576 } 569 }
577 // fieldB 570 // fieldB
578 { 571 {
579 Outline outline = outlines[1]; 572 Outline outline = outlines[1];
580 Element element = outline.element; 573 Element element = outline.element;
581 expect(element.kind, ElementKind.FIELD); 574 expect(element.kind, ElementKind.FIELD);
582 expect(element.name, "fieldB"); 575 expect(element.name, "fieldB");
583 { 576 {
584 int offset = testCode.indexOf(", fieldB"); 577 int offset = testCode.indexOf(", fieldB");
585 int end = testCode.indexOf(", fieldC"); 578 int end = testCode.indexOf(", fieldC");
586 expect(outline.offset, offset); 579 expect(outline.offset, offset);
587 expect(outline.length, end - offset); 580 expect(outline.length, end - offset);
588 } 581 }
589 } 582 }
590 // fieldC 583 // fieldC
591 { 584 {
592 Outline outline = outlines[2]; 585 Outline outline = outlines[2];
593 Element element = outline.element; 586 Element element = outline.element;
594 expect(element.kind, ElementKind.FIELD); 587 expect(element.kind, ElementKind.FIELD);
595 expect(element.name, "fieldC"); 588 expect(element.name, "fieldC");
596 { 589 {
597 int offset = testCode.indexOf(", fieldC"); 590 int offset = testCode.indexOf(", fieldC");
598 int end = testCode.indexOf(" // marker"); 591 int end = testCode.indexOf(" // marker");
599 expect(outline.offset, offset); 592 expect(outline.offset, offset);
600 expect(outline.length, end - offset); 593 expect(outline.length, end - offset);
601 } 594 }
602 } 595 }
603 // fieldD 596 // fieldD
604 { 597 {
605 Outline outline = outlines[3]; 598 Outline outline = outlines[3];
606 Element element = outline.element; 599 Element element = outline.element;
607 expect(element.kind, ElementKind.FIELD); 600 expect(element.kind, ElementKind.FIELD);
608 expect(element.name, "fieldD"); 601 expect(element.name, "fieldD");
609 { 602 {
610 int offset = testCode.indexOf(" // marker"); 603 int offset = testCode.indexOf(" // marker");
611 int end = testCode.indexOf(" // marker2"); 604 int end = testCode.indexOf(" // marker2");
612 expect(outline.offset, offset); 605 expect(outline.offset, offset);
613 expect(outline.length, end - offset); 606 expect(outline.length, end - offset);
614 } 607 }
615 } 608 }
616 });
617 } 609 }
618 610
619 test_sourceRange_inUnit() { 611 test_sourceRange_inUnit() async {
620 addTestFile(''' 612 addTestFile('''
621 library lib; 613 library lib;
622 /// My first class. 614 /// My first class.
623 class A { 615 class A {
624 } // endA 616 } // endA
625 class B { 617 class B {
626 } // endB 618 } // endB
627 '''); 619 ''');
628 return prepareOutline().then((_) { 620 await prepareOutline();
629 Outline unitOutline = outline; 621 Outline unitOutline = outline;
630 List<Outline> topOutlines = unitOutline.children; 622 List<Outline> topOutlines = unitOutline.children;
631 expect(topOutlines, hasLength(2)); 623 expect(topOutlines, hasLength(2));
632 // A 624 // A
625 {
626 Outline outline = topOutlines[0];
627 Element element = outline.element;
628 expect(element.kind, ElementKind.CLASS);
629 expect(element.name, "A");
633 { 630 {
634 Outline outline = topOutlines[0]; 631 int offset = testCode.indexOf("/// My first class.");
635 Element element = outline.element; 632 int end = testCode.indexOf(" // endA");
636 expect(element.kind, ElementKind.CLASS); 633 expect(outline.offset, offset);
637 expect(element.name, "A"); 634 expect(outline.length, end - offset);
638 {
639 int offset = testCode.indexOf("/// My first class.");
640 int end = testCode.indexOf(" // endA");
641 expect(outline.offset, offset);
642 expect(outline.length, end - offset);
643 }
644 } 635 }
645 // B 636 }
637 // B
638 {
639 Outline outline = topOutlines[1];
640 Element element = outline.element;
641 expect(element.kind, ElementKind.CLASS);
642 expect(element.name, "B");
646 { 643 {
647 Outline outline = topOutlines[1]; 644 int offset = testCode.indexOf(" // endA");
648 Element element = outline.element; 645 int end = testCode.indexOf(" // endB");
649 expect(element.kind, ElementKind.CLASS); 646 expect(outline.offset, offset);
650 expect(element.name, "B"); 647 expect(outline.length, end - offset);
651 {
652 int offset = testCode.indexOf(" // endA");
653 int end = testCode.indexOf(" // endB");
654 expect(outline.offset, offset);
655 expect(outline.length, end - offset);
656 }
657 } 648 }
658 }); 649 }
659 } 650 }
660 651
661 test_sourceRange_inUnit_inVariableList() { 652 test_sourceRange_inUnit_inVariableList() async {
662 addTestFile(''' 653 addTestFile('''
663 int fieldA, fieldB, fieldC; // marker 654 int fieldA, fieldB, fieldC; // marker
664 int fieldD; // marker2 655 int fieldD; // marker2
665 '''); 656 ''');
666 return prepareOutline().then((_) { 657 await prepareOutline();
667 Outline unitOutline = outline; 658 Outline unitOutline = outline;
668 List<Outline> outlines = unitOutline.children; 659 List<Outline> outlines = unitOutline.children;
669 expect(outlines, hasLength(4)); 660 expect(outlines, hasLength(4));
670 // fieldA 661 // fieldA
662 {
663 Outline outline = outlines[0];
664 Element element = outline.element;
665 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE);
666 expect(element.name, "fieldA");
671 { 667 {
672 Outline outline = outlines[0]; 668 int offset = 0;
673 Element element = outline.element; 669 int end = testCode.indexOf(", fieldB");
674 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE); 670 expect(outline.offset, offset);
675 expect(element.name, "fieldA"); 671 expect(outline.length, end - offset);
676 {
677 int offset = 0;
678 int end = testCode.indexOf(", fieldB");
679 expect(outline.offset, offset);
680 expect(outline.length, end - offset);
681 }
682 } 672 }
683 // fieldB 673 }
674 // fieldB
675 {
676 Outline outline = outlines[1];
677 Element element = outline.element;
678 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE);
679 expect(element.name, "fieldB");
684 { 680 {
685 Outline outline = outlines[1]; 681 int offset = testCode.indexOf(", fieldB");
686 Element element = outline.element; 682 int end = testCode.indexOf(", fieldC");
687 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE); 683 expect(outline.offset, offset);
688 expect(element.name, "fieldB"); 684 expect(outline.length, end - offset);
689 {
690 int offset = testCode.indexOf(", fieldB");
691 int end = testCode.indexOf(", fieldC");
692 expect(outline.offset, offset);
693 expect(outline.length, end - offset);
694 }
695 } 685 }
696 // fieldC 686 }
687 // fieldC
688 {
689 Outline outline = outlines[2];
690 Element element = outline.element;
691 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE);
692 expect(element.name, "fieldC");
697 { 693 {
698 Outline outline = outlines[2]; 694 int offset = testCode.indexOf(", fieldC");
699 Element element = outline.element; 695 int end = testCode.indexOf(" // marker");
700 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE); 696 expect(outline.offset, offset);
701 expect(element.name, "fieldC"); 697 expect(outline.length, end - offset);
702 {
703 int offset = testCode.indexOf(", fieldC");
704 int end = testCode.indexOf(" // marker");
705 expect(outline.offset, offset);
706 expect(outline.length, end - offset);
707 }
708 } 698 }
709 // fieldD 699 }
700 // fieldD
701 {
702 Outline outline = outlines[3];
703 Element element = outline.element;
704 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE);
705 expect(element.name, "fieldD");
710 { 706 {
711 Outline outline = outlines[3]; 707 int offset = testCode.indexOf(" // marker");
712 Element element = outline.element; 708 int end = testCode.indexOf(" // marker2");
713 expect(element.kind, ElementKind.TOP_LEVEL_VARIABLE); 709 expect(outline.offset, offset);
714 expect(element.name, "fieldD"); 710 expect(outline.length, end - offset);
715 {
716 int offset = testCode.indexOf(" // marker");
717 int end = testCode.indexOf(" // marker2");
718 expect(outline.offset, offset);
719 expect(outline.length, end - offset);
720 }
721 } 711 }
722 }); 712 }
723 } 713 }
724 714
725 test_topLevel() { 715 test_topLevel() async {
726 addTestFile(''' 716 addTestFile('''
727 typedef String FTA<K, V>(int i, String s); 717 typedef String FTA<K, V>(int i, String s);
728 typedef FTB(int p); 718 typedef FTB(int p);
729 class A<T> {} 719 class A<T> {}
730 class B {} 720 class B {}
731 class CTA<T> = A<T> with B; 721 class CTA<T> = A<T> with B;
732 class CTB = A with B; 722 class CTB = A with B;
733 String fA(int i, String s) => null; 723 String fA(int i, String s) => null;
734 fB(int p) => null; 724 fB(int p) => null;
735 String get propA => null; 725 String get propA => null;
736 set propB(int v) {} 726 set propB(int v) {}
737 '''); 727 ''');
738 return prepareOutline().then((_) { 728 await prepareOutline();
739 Outline unitOutline = outline; 729 Outline unitOutline = outline;
740 List<Outline> topOutlines = unitOutline.children; 730 List<Outline> topOutlines = unitOutline.children;
741 expect(topOutlines, hasLength(10)); 731 expect(topOutlines, hasLength(10));
742 // FTA 732 // FTA
733 {
734 Outline outline = topOutlines[0];
735 Element element = outline.element;
736 expect(element.kind, ElementKind.FUNCTION_TYPE_ALIAS);
737 expect(element.name, "FTA");
738 expect(element.typeParameters, "<K, V>");
743 { 739 {
744 Outline outline = topOutlines[0]; 740 Location location = element.location;
745 Element element = outline.element; 741 expect(location.offset, testCode.indexOf("FTA<K, V>("));
746 expect(element.kind, ElementKind.FUNCTION_TYPE_ALIAS); 742 expect(location.length, "FTA".length);
747 expect(element.name, "FTA");
748 expect(element.typeParameters, "<K, V>");
749 {
750 Location location = element.location;
751 expect(location.offset, testCode.indexOf("FTA<K, V>("));
752 expect(location.length, "FTA".length);
753 }
754 expect(element.parameters, "(int i, String s)");
755 expect(element.returnType, "String");
756 } 743 }
757 // FTB 744 expect(element.parameters, "(int i, String s)");
745 expect(element.returnType, "String");
746 }
747 // FTB
748 {
749 Outline outline = topOutlines[1];
750 Element element = outline.element;
751 expect(element.kind, ElementKind.FUNCTION_TYPE_ALIAS);
752 expect(element.name, "FTB");
753 expect(element.typeParameters, isNull);
758 { 754 {
759 Outline outline = topOutlines[1]; 755 Location location = element.location;
760 Element element = outline.element; 756 expect(location.offset, testCode.indexOf("FTB("));
761 expect(element.kind, ElementKind.FUNCTION_TYPE_ALIAS); 757 expect(location.length, "FTB".length);
762 expect(element.name, "FTB");
763 expect(element.typeParameters, isNull);
764 {
765 Location location = element.location;
766 expect(location.offset, testCode.indexOf("FTB("));
767 expect(location.length, "FTB".length);
768 }
769 expect(element.parameters, "(int p)");
770 expect(element.returnType, "");
771 } 758 }
772 // CTA 759 expect(element.parameters, "(int p)");
760 expect(element.returnType, "");
761 }
762 // CTA
763 {
764 Outline outline = topOutlines[4];
765 Element element = outline.element;
766 expect(element.kind, ElementKind.CLASS_TYPE_ALIAS);
767 expect(element.name, "CTA");
768 expect(element.typeParameters, '<T>');
773 { 769 {
774 Outline outline = topOutlines[4]; 770 Location location = element.location;
775 Element element = outline.element; 771 expect(location.offset, testCode.indexOf("CTA<T> ="));
776 expect(element.kind, ElementKind.CLASS_TYPE_ALIAS); 772 expect(location.length, "CTA".length);
777 expect(element.name, "CTA");
778 expect(element.typeParameters, '<T>');
779 {
780 Location location = element.location;
781 expect(location.offset, testCode.indexOf("CTA<T> ="));
782 expect(location.length, "CTA".length);
783 }
784 expect(element.parameters, isNull);
785 expect(element.returnType, isNull);
786 } 773 }
787 // CTB 774 expect(element.parameters, isNull);
775 expect(element.returnType, isNull);
776 }
777 // CTB
778 {
779 Outline outline = topOutlines[5];
780 Element element = outline.element;
781 expect(element.kind, ElementKind.CLASS_TYPE_ALIAS);
782 expect(element.name, 'CTB');
783 expect(element.typeParameters, isNull);
784 expect(element.returnType, isNull);
785 }
786 // fA
787 {
788 Outline outline = topOutlines[6];
789 Element element = outline.element;
790 expect(element.kind, ElementKind.FUNCTION);
791 expect(element.name, "fA");
788 { 792 {
789 Outline outline = topOutlines[5]; 793 Location location = element.location;
790 Element element = outline.element; 794 expect(location.offset, testCode.indexOf("fA("));
791 expect(element.kind, ElementKind.CLASS_TYPE_ALIAS); 795 expect(location.length, "fA".length);
792 expect(element.name, 'CTB');
793 expect(element.typeParameters, isNull);
794 expect(element.returnType, isNull);
795 } 796 }
796 // fA 797 expect(element.parameters, "(int i, String s)");
798 expect(element.returnType, "String");
799 }
800 // fB
801 {
802 Outline outline = topOutlines[7];
803 Element element = outline.element;
804 expect(element.kind, ElementKind.FUNCTION);
805 expect(element.name, "fB");
797 { 806 {
798 Outline outline = topOutlines[6]; 807 Location location = element.location;
799 Element element = outline.element; 808 expect(location.offset, testCode.indexOf("fB("));
800 expect(element.kind, ElementKind.FUNCTION); 809 expect(location.length, "fB".length);
801 expect(element.name, "fA");
802 {
803 Location location = element.location;
804 expect(location.offset, testCode.indexOf("fA("));
805 expect(location.length, "fA".length);
806 }
807 expect(element.parameters, "(int i, String s)");
808 expect(element.returnType, "String");
809 } 810 }
810 // fB 811 expect(element.parameters, "(int p)");
812 expect(element.returnType, "");
813 }
814 // propA
815 {
816 Outline outline = topOutlines[8];
817 Element element = outline.element;
818 expect(element.kind, ElementKind.GETTER);
819 expect(element.name, "propA");
811 { 820 {
812 Outline outline = topOutlines[7]; 821 Location location = element.location;
813 Element element = outline.element; 822 expect(location.offset, testCode.indexOf("propA => null;"));
814 expect(element.kind, ElementKind.FUNCTION); 823 expect(location.length, "propA".length);
815 expect(element.name, "fB");
816 {
817 Location location = element.location;
818 expect(location.offset, testCode.indexOf("fB("));
819 expect(location.length, "fB".length);
820 }
821 expect(element.parameters, "(int p)");
822 expect(element.returnType, "");
823 } 824 }
824 // propA 825 expect(element.parameters, "");
826 expect(element.returnType, "String");
827 }
828 // propB
829 {
830 Outline outline = topOutlines[9];
831 Element element = outline.element;
832 expect(element.kind, ElementKind.SETTER);
833 expect(element.name, "propB");
825 { 834 {
826 Outline outline = topOutlines[8]; 835 Location location = element.location;
827 Element element = outline.element; 836 expect(location.offset, testCode.indexOf("propB(int v) {}"));
828 expect(element.kind, ElementKind.GETTER); 837 expect(location.length, "propB".length);
829 expect(element.name, "propA");
830 {
831 Location location = element.location;
832 expect(location.offset, testCode.indexOf("propA => null;"));
833 expect(location.length, "propA".length);
834 }
835 expect(element.parameters, "");
836 expect(element.returnType, "String");
837 } 838 }
838 // propB 839 expect(element.parameters, "(int v)");
839 { 840 expect(element.returnType, "");
840 Outline outline = topOutlines[9]; 841 }
841 Element element = outline.element;
842 expect(element.kind, ElementKind.SETTER);
843 expect(element.name, "propB");
844 {
845 Location location = element.location;
846 expect(location.offset, testCode.indexOf("propB(int v) {}"));
847 expect(location.length, "propB".length);
848 }
849 expect(element.parameters, "(int v)");
850 expect(element.returnType, "");
851 }
852 });
853 } 842 }
854 843
855 void _isEnumConstant(Outline outline, String name) { 844 void _isEnumConstant(Outline outline, String name) {
856 Element element = outline.element; 845 Element element = outline.element;
857 expect(element.kind, ElementKind.ENUM_CONSTANT); 846 expect(element.kind, ElementKind.ENUM_CONSTANT);
858 expect(element.name, name); 847 expect(element.name, name);
859 expect(element.parameters, isNull); 848 expect(element.parameters, isNull);
860 expect(element.returnType, isNull); 849 expect(element.returnType, isNull);
861 } 850 }
862 } 851 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698