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

Side by Side Diff: pkg/analysis_server/test/services/search/search_engine_test.dart

Issue 2975253002: Format analyzer, analysis_server, analyzer_plugin, front_end and kernel with the latest dartfmt. (Closed)
Patch Set: Created 3 years, 5 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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:async'; 5 import 'dart:async';
6 6
7 import 'package:analysis_server/src/services/search/search_engine.dart'; 7 import 'package:analysis_server/src/services/search/search_engine.dart';
8 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ; 8 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ;
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/file_system/file_system.dart'; 10 import 'package:analyzer/file_system/file_system.dart';
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 logger = new PerformanceLog(logBuffer); 44 logger = new PerformanceLog(logBuffer);
45 scheduler = new AnalysisDriverScheduler(logger); 45 scheduler = new AnalysisDriverScheduler(logger);
46 scheduler.start(); 46 scheduler.start();
47 } 47 }
48 48
49 test_membersOfSubtypes_hasMembers() async { 49 test_membersOfSubtypes_hasMembers() async {
50 var a = _p('/test/a.dart'); 50 var a = _p('/test/a.dart');
51 var b = _p('/test/b.dart'); 51 var b = _p('/test/b.dart');
52 var c = _p('/test/c.dart'); 52 var c = _p('/test/c.dart');
53 53
54 provider.newFile( 54 provider.newFile(a, '''
55 a,
56 '''
57 class A { 55 class A {
58 void a() {} 56 void a() {}
59 void b() {} 57 void b() {}
60 void c() {} 58 void c() {}
61 } 59 }
62 '''); 60 ''');
63 provider.newFile( 61 provider.newFile(b, '''
64 b,
65 '''
66 import 'a.dart'; 62 import 'a.dart';
67 class B extends A { 63 class B extends A {
68 void a() {} 64 void a() {}
69 } 65 }
70 '''); 66 ''');
71 provider.newFile( 67 provider.newFile(c, '''
72 c,
73 '''
74 import 'a.dart'; 68 import 'a.dart';
75 class C extends A { 69 class C extends A {
76 void b() {} 70 void b() {}
77 } 71 }
78 '''); 72 ''');
79 73
80 var driver1 = _newDriver(); 74 var driver1 = _newDriver();
81 var driver2 = _newDriver(); 75 var driver2 = _newDriver();
82 76
83 driver1.addFile(a); 77 driver1.addFile(a);
84 driver2.addFile(b); 78 driver2.addFile(b);
85 driver2.addFile(c); 79 driver2.addFile(c);
86 await scheduler.waitForIdle(); 80 await scheduler.waitForIdle();
87 81
88 var resultA = await driver1.getResult(a); 82 var resultA = await driver1.getResult(a);
89 ClassElement elementA = resultA.unit.element.types[0]; 83 ClassElement elementA = resultA.unit.element.types[0];
90 84
91 var searchEngine = new SearchEngineImpl([driver1, driver2]); 85 var searchEngine = new SearchEngineImpl([driver1, driver2]);
92 Set<String> members = await searchEngine.membersOfSubtypes(elementA); 86 Set<String> members = await searchEngine.membersOfSubtypes(elementA);
93 expect(members, unorderedEquals(['a', 'b'])); 87 expect(members, unorderedEquals(['a', 'b']));
94 } 88 }
95 89
96 test_membersOfSubtypes_noMembers() async { 90 test_membersOfSubtypes_noMembers() async {
97 var a = _p('/test/a.dart'); 91 var a = _p('/test/a.dart');
98 var b = _p('/test/b.dart'); 92 var b = _p('/test/b.dart');
99 93
100 provider.newFile( 94 provider.newFile(a, '''
101 a,
102 '''
103 class A { 95 class A {
104 void a() {} 96 void a() {}
105 void b() {} 97 void b() {}
106 void c() {} 98 void c() {}
107 } 99 }
108 '''); 100 ''');
109 provider.newFile( 101 provider.newFile(b, '''
110 b,
111 '''
112 import 'a.dart'; 102 import 'a.dart';
113 class B extends A {} 103 class B extends A {}
114 '''); 104 ''');
115 105
116 var driver = _newDriver(); 106 var driver = _newDriver();
117 107
118 driver.addFile(a); 108 driver.addFile(a);
119 driver.addFile(b); 109 driver.addFile(b);
120 await scheduler.waitForIdle(); 110 await scheduler.waitForIdle();
121 111
122 var resultA = await driver.getResult(a); 112 var resultA = await driver.getResult(a);
123 ClassElement elementA = resultA.unit.element.types[0]; 113 ClassElement elementA = resultA.unit.element.types[0];
124 114
125 var searchEngine = new SearchEngineImpl([driver]); 115 var searchEngine = new SearchEngineImpl([driver]);
126 Set<String> members = await searchEngine.membersOfSubtypes(elementA); 116 Set<String> members = await searchEngine.membersOfSubtypes(elementA);
127 expect(members, isEmpty); 117 expect(members, isEmpty);
128 } 118 }
129 119
130 test_membersOfSubtypes_noSubtypes() async { 120 test_membersOfSubtypes_noSubtypes() async {
131 var a = _p('/test/a.dart'); 121 var a = _p('/test/a.dart');
132 var b = _p('/test/b.dart'); 122 var b = _p('/test/b.dart');
133 123
134 provider.newFile( 124 provider.newFile(a, '''
135 a,
136 '''
137 class A { 125 class A {
138 void a() {} 126 void a() {}
139 void b() {} 127 void b() {}
140 void c() {} 128 void c() {}
141 } 129 }
142 '''); 130 ''');
143 provider.newFile( 131 provider.newFile(b, '''
144 b,
145 '''
146 import 'a.dart'; 132 import 'a.dart';
147 class B { 133 class B {
148 void a() {} 134 void a() {}
149 } 135 }
150 '''); 136 ''');
151 137
152 var driver = _newDriver(); 138 var driver = _newDriver();
153 139
154 driver.addFile(a); 140 driver.addFile(a);
155 driver.addFile(b); 141 driver.addFile(b);
156 await scheduler.waitForIdle(); 142 await scheduler.waitForIdle();
157 143
158 var resultA = await driver.getResult(a); 144 var resultA = await driver.getResult(a);
159 ClassElement elementA = resultA.unit.element.types[0]; 145 ClassElement elementA = resultA.unit.element.types[0];
160 146
161 var searchEngine = new SearchEngineImpl([driver]); 147 var searchEngine = new SearchEngineImpl([driver]);
162 Set<String> members = await searchEngine.membersOfSubtypes(elementA); 148 Set<String> members = await searchEngine.membersOfSubtypes(elementA);
163 expect(members, isNull); 149 expect(members, isNull);
164 } 150 }
165 151
166 test_membersOfSubtypes_private() async { 152 test_membersOfSubtypes_private() async {
167 var a = _p('/test/a.dart'); 153 var a = _p('/test/a.dart');
168 var b = _p('/test/b.dart'); 154 var b = _p('/test/b.dart');
169 155
170 provider.newFile( 156 provider.newFile(a, '''
171 a,
172 '''
173 class A { 157 class A {
174 void a() {} 158 void a() {}
175 void _b() {} 159 void _b() {}
176 void _c() {} 160 void _c() {}
177 } 161 }
178 class B extends A { 162 class B extends A {
179 void _b() {} 163 void _b() {}
180 } 164 }
181 '''); 165 ''');
182 provider.newFile( 166 provider.newFile(b, '''
183 b,
184 '''
185 import 'a.dart'; 167 import 'a.dart';
186 class C extends A { 168 class C extends A {
187 void a() {} 169 void a() {}
188 void _c() {} 170 void _c() {}
189 } 171 }
190 class D extends B { 172 class D extends B {
191 void _c() {} 173 void _c() {}
192 } 174 }
193 '''); 175 ''');
194 176
195 var driver1 = _newDriver(); 177 var driver1 = _newDriver();
196 var driver2 = _newDriver(); 178 var driver2 = _newDriver();
197 179
198 driver1.addFile(a); 180 driver1.addFile(a);
199 driver2.addFile(b); 181 driver2.addFile(b);
200 await scheduler.waitForIdle(); 182 await scheduler.waitForIdle();
201 183
202 var resultA = await driver1.getResult(a); 184 var resultA = await driver1.getResult(a);
203 ClassElement elementA = resultA.unit.element.types[0]; 185 ClassElement elementA = resultA.unit.element.types[0];
204 186
205 var searchEngine = new SearchEngineImpl([driver1, driver2]); 187 var searchEngine = new SearchEngineImpl([driver1, driver2]);
206 Set<String> members = await searchEngine.membersOfSubtypes(elementA); 188 Set<String> members = await searchEngine.membersOfSubtypes(elementA);
207 expect(members, unorderedEquals(['a', '_b'])); 189 expect(members, unorderedEquals(['a', '_b']));
208 } 190 }
209 191
210 test_searchAllSubtypes() async { 192 test_searchAllSubtypes() async {
211 var p = _p('/test.dart'); 193 var p = _p('/test.dart');
212 194
213 provider.newFile( 195 provider.newFile(p, '''
214 p,
215 '''
216 class T {} 196 class T {}
217 class A extends T {} 197 class A extends T {}
218 class B extends A {} 198 class B extends A {}
219 class C implements B {} 199 class C implements B {}
220 '''); 200 ''');
221 201
222 var driver = _newDriver(); 202 var driver = _newDriver();
223 driver.addFile(p); 203 driver.addFile(p);
224 204
225 var resultA = await driver.getResult(p); 205 var resultA = await driver.getResult(p);
226 ClassElement element = resultA.unit.element.types[0]; 206 ClassElement element = resultA.unit.element.types[0];
227 207
228 var searchEngine = new SearchEngineImpl([driver]); 208 var searchEngine = new SearchEngineImpl([driver]);
229 Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element); 209 Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element);
230 expect(subtypes, hasLength(3)); 210 expect(subtypes, hasLength(3));
231 expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A'))); 211 expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A')));
232 expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B'))); 212 expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B')));
233 expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C'))); 213 expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
234 } 214 }
235 215
236 test_searchAllSubtypes_acrossDrivers() async { 216 test_searchAllSubtypes_acrossDrivers() async {
237 var a = _p('/test/a.dart'); 217 var a = _p('/test/a.dart');
238 var b = _p('/test/b.dart'); 218 var b = _p('/test/b.dart');
239 219
240 provider.newFile( 220 provider.newFile(a, '''
241 a,
242 '''
243 class T {} 221 class T {}
244 class A extends T {} 222 class A extends T {}
245 '''); 223 ''');
246 provider.newFile( 224 provider.newFile(b, '''
247 b,
248 '''
249 import 'a.dart'; 225 import 'a.dart';
250 class B extends A {} 226 class B extends A {}
251 class C extends B {} 227 class C extends B {}
252 '''); 228 ''');
253 229
254 var driver1 = _newDriver(); 230 var driver1 = _newDriver();
255 var driver2 = _newDriver(); 231 var driver2 = _newDriver();
256 232
257 driver1.addFile(a); 233 driver1.addFile(a);
258 driver2.addFile(b); 234 driver2.addFile(b);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 } 290 }
315 291
316 assertHasElement('test', codeA.indexOf('test; // 1')); 292 assertHasElement('test', codeA.indexOf('test; // 1'));
317 assertHasElement('test', codeB.indexOf('test() {} // 2')); 293 assertHasElement('test', codeB.indexOf('test() {} // 2'));
318 } 294 }
319 295
320 test_searchMemberReferences() async { 296 test_searchMemberReferences() async {
321 var a = _p('/test/a.dart'); 297 var a = _p('/test/a.dart');
322 var b = _p('/test/b.dart'); 298 var b = _p('/test/b.dart');
323 299
324 provider.newFile( 300 provider.newFile(a, '''
325 a,
326 '''
327 class A { 301 class A {
328 int test; 302 int test;
329 } 303 }
330 foo(p) { 304 foo(p) {
331 p.test; 305 p.test;
332 } 306 }
333 '''); 307 ''');
334 provider.newFile( 308 provider.newFile(b, '''
335 b,
336 '''
337 import 'a.dart'; 309 import 'a.dart';
338 bar(p) { 310 bar(p) {
339 p.test = 1; 311 p.test = 1;
340 } 312 }
341 '''); 313 ''');
342 314
343 var driver1 = _newDriver(); 315 var driver1 = _newDriver();
344 var driver2 = _newDriver(); 316 var driver2 = _newDriver();
345 317
346 driver1.addFile(a); 318 driver1.addFile(a);
(...skipping 10 matching lines...) Expand all
357 expect( 329 expect(
358 matches, 330 matches,
359 contains(predicate((SearchMatch m) => 331 contains(predicate((SearchMatch m) =>
360 m.element.name == 'bar' || m.kind == MatchKind.WRITE))); 332 m.element.name == 'bar' || m.kind == MatchKind.WRITE)));
361 } 333 }
362 334
363 test_searchReferences() async { 335 test_searchReferences() async {
364 var a = _p('/test/a.dart'); 336 var a = _p('/test/a.dart');
365 var b = _p('/test/b.dart'); 337 var b = _p('/test/b.dart');
366 338
367 provider.newFile( 339 provider.newFile(a, '''
368 a,
369 '''
370 class T {} 340 class T {}
371 T a; 341 T a;
372 '''); 342 ''');
373 provider.newFile( 343 provider.newFile(b, '''
374 b,
375 '''
376 import 'a.dart'; 344 import 'a.dart';
377 T b; 345 T b;
378 '''); 346 ''');
379 347
380 var driver1 = _newDriver(); 348 var driver1 = _newDriver();
381 var driver2 = _newDriver(); 349 var driver2 = _newDriver();
382 350
383 driver1.addFile(a); 351 driver1.addFile(a);
384 driver2.addFile(b); 352 driver2.addFile(b);
385 353
386 var resultA = await driver1.getResult(a); 354 var resultA = await driver1.getResult(a);
387 ClassElement element = resultA.unit.element.types[0]; 355 ClassElement element = resultA.unit.element.types[0];
388 356
389 var searchEngine = new SearchEngineImpl([driver1, driver2]); 357 var searchEngine = new SearchEngineImpl([driver1, driver2]);
390 List<SearchMatch> matches = await searchEngine.searchReferences(element); 358 List<SearchMatch> matches = await searchEngine.searchReferences(element);
391 expect(matches, hasLength(2)); 359 expect(matches, hasLength(2));
392 expect( 360 expect(
393 matches, contains(predicate((SearchMatch m) => m.element.name == 'a'))); 361 matches, contains(predicate((SearchMatch m) => m.element.name == 'a')));
394 expect( 362 expect(
395 matches, contains(predicate((SearchMatch m) => m.element.name == 'b'))); 363 matches, contains(predicate((SearchMatch m) => m.element.name == 'b')));
396 } 364 }
397 365
398 test_searchTopLevelDeclarations() async { 366 test_searchTopLevelDeclarations() async {
399 var a = _p('/test/a.dart'); 367 var a = _p('/test/a.dart');
400 var b = _p('/test/b.dart'); 368 var b = _p('/test/b.dart');
401 369
402 provider.newFile( 370 provider.newFile(a, '''
403 a,
404 '''
405 class A {} 371 class A {}
406 int a; 372 int a;
407 '''); 373 ''');
408 provider.newFile( 374 provider.newFile(b, '''
409 b,
410 '''
411 class B {} 375 class B {}
412 get b => 42; 376 get b => 42;
413 '''); 377 ''');
414 378
415 var driver1 = _newDriver(); 379 var driver1 = _newDriver();
416 var driver2 = _newDriver(); 380 var driver2 = _newDriver();
417 381
418 driver1.addFile(a); 382 driver1.addFile(a);
419 driver2.addFile(b); 383 driver2.addFile(b);
420 384
(...skipping 28 matching lines...) Expand all
449 contentOverlay, 413 contentOverlay,
450 null, 414 null,
451 new SourceFactory( 415 new SourceFactory(
452 [new DartUriResolver(sdk), new ResourceUriResolver(provider)], 416 [new DartUriResolver(sdk), new ResourceUriResolver(provider)],
453 null, 417 null,
454 provider), 418 provider),
455 new AnalysisOptionsImpl()..strongMode = true); 419 new AnalysisOptionsImpl()..strongMode = true);
456 420
457 String _p(String path) => provider.convertPath(path); 421 String _p(String path) => provider.convertPath(path);
458 } 422 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698