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

Side by Side Diff: pkg/analysis_server/test/services/completion/uri_contributor_test.dart

Issue 1498733005: convert uri contributor to use new task model (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
« no previous file with comments | « pkg/analysis_server/test/services/completion/test_all.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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.services.completion.contributor.dart.importuri;
6
7 import 'package:analysis_server/plugin/protocol/protocol.dart';
8 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart';
9 import 'package:analysis_server/src/services/completion/uri_contributor.dart';
10 import 'package:analyzer/file_system/memory_file_system.dart';
11 import 'package:path/path.dart';
12 import 'package:test_reflective_loader/test_reflective_loader.dart';
13 import 'package:unittest/unittest.dart';
14
15 import '../../utils.dart';
16 import 'completion_test_util.dart';
17
18 main() {
19 initializeTestEnvironment();
20 defineReflectiveTests(UriContributorTest);
21 defineReflectiveTests(UriContributorWindowsTest);
22 }
23
24 @reflectiveTest
25 class UriContributorTest extends AbstractCompletionTest {
26 @override
27 void setUpContributor() {
28 contributor = new UriContributor();
29 }
30
31 test_after_import() {
32 addTestSource('import "p"^');
33 computeFast();
34 expect(request.replacementOffset, completionOffset);
35 expect(request.replacementLength, 0);
36 assertNoSuggestions();
37 }
38
39 test_after_import_raw() {
40 addTestSource('import r"p"^');
41 computeFast();
42 expect(request.replacementOffset, completionOffset);
43 expect(request.replacementLength, 0);
44 assertNoSuggestions();
45 }
46
47 test_before_import() {
48 addTestSource('import ^"p"');
49 computeFast();
50 expect(request.replacementOffset, completionOffset);
51 expect(request.replacementLength, 0);
52 assertNoSuggestions();
53 }
54
55 test_before_import_raw() {
56 addTestSource('import ^r"p"');
57 computeFast();
58 expect(request.replacementOffset, completionOffset);
59 expect(request.replacementLength, 0);
60 assertNoSuggestions();
61 }
62
63 test_before_import_raw2() {
64 addTestSource('import r^"p"');
65 computeFast();
66 expect(request.replacementOffset, completionOffset);
67 expect(request.replacementLength, 0);
68 assertNoSuggestions();
69 }
70
71 test_export_package2() {
72 addPackageSource('foo', 'foo.dart', 'library foo;');
73 addPackageSource('foo', 'baz/too.dart', 'library too;');
74 addPackageSource('bar', 'bar.dart', 'library bar;');
75 addTestSource('export "package:foo/baz/^" import');
76 computeFast();
77 assertSuggest('package:foo/baz/too.dart',
78 csKind: CompletionSuggestionKind.IMPORT);
79 }
80
81 test_import() {
82 addTestSource('import "^"');
83 computeFast();
84 expect(request.replacementOffset, completionOffset);
85 expect(request.replacementLength, 0);
86 assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
87 assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
88 }
89
90 test_import2() {
91 addTestSource('import "^" import');
92 computeFast();
93 expect(request.replacementOffset, completionOffset);
94 expect(request.replacementLength, 0);
95 assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
96 assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
97 }
98
99 test_import_dart() {
100 addTestSource('import "d^" import');
101 computeFast();
102 expect(request.replacementOffset, completionOffset - 1);
103 expect(request.replacementLength, 1);
104 assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
105 assertSuggest('dart:core',
106 csKind: CompletionSuggestionKind.IMPORT, relevance: DART_RELEVANCE_LOW);
107 assertNotSuggested('dart:_internal');
108 assertSuggest('dart:async', csKind: CompletionSuggestionKind.IMPORT);
109 assertSuggest('dart:math', csKind: CompletionSuggestionKind.IMPORT);
110 }
111
112 test_import_dart2() {
113 addTestSource('import "dart:async"; import "d^"');
114 computeFast();
115 expect(request.replacementOffset, completionOffset - 1);
116 expect(request.replacementLength, 1);
117 assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
118 assertSuggest('dart:core',
119 csKind: CompletionSuggestionKind.IMPORT, relevance: DART_RELEVANCE_LOW);
120 assertNotSuggested('dart:_internal');
121 assertSuggest('dart:async', csKind: CompletionSuggestionKind.IMPORT);
122 assertSuggest('dart:math', csKind: CompletionSuggestionKind.IMPORT);
123 }
124
125 test_import_file() {
126 testFile = '/proj/completion.dart';
127 addSource('/proj/other.dart', 'library other;');
128 addSource('/proj/foo/bar.dart', 'library bar;');
129 addSource('/blat.dart', 'library blat;');
130 addTestSource('import "^" import');
131 computeFast();
132 expect(request.replacementOffset, completionOffset);
133 expect(request.replacementLength, 0);
134 assertNotSuggested('completion.dart');
135 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
136 assertNotSuggested('foo');
137 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
138 assertNotSuggested('foo/bar.dart');
139 assertNotSuggested('../blat.dart');
140 }
141
142 test_import_file2() {
143 testFile = '/proj/completion.dart';
144 addSource('/proj/other.dart', 'library other;');
145 addSource('/proj/foo/bar.dart', 'library bar;');
146 addSource('/blat.dart', 'library blat;');
147 addTestSource('import "..^" import');
148 computeFast();
149 expect(request.replacementOffset, completionOffset - 2);
150 expect(request.replacementLength, 2);
151 assertNotSuggested('completion.dart');
152 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
153 assertNotSuggested('foo');
154 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
155 assertNotSuggested('foo/bar.dart');
156 assertNotSuggested('../blat.dart');
157 }
158
159 test_import_file_child() {
160 testFile = '/proj/completion.dart';
161 addSource('/proj/other.dart', 'library other;');
162 addSource('/proj/foo/bar.dart', 'library bar;');
163 addSource('/blat.dart', 'library blat;');
164 addTestSource('import "foo/^" import');
165 computeFast();
166 expect(request.replacementOffset, completionOffset - 4);
167 expect(request.replacementLength, 4);
168 assertNotSuggested('completion.dart');
169 assertNotSuggested('other.dart');
170 assertNotSuggested('foo');
171 assertNotSuggested('foo/');
172 assertSuggest('foo/bar.dart', csKind: CompletionSuggestionKind.IMPORT);
173 assertNotSuggested('../blat.dart');
174 }
175
176 test_import_file_parent() {
177 testFile = '/proj/completion.dart';
178 addSource('/proj/other.dart', 'library other;');
179 addSource('/proj/foo/bar.dart', 'library bar;');
180 addSource('/blat.dart', 'library blat;');
181 addTestSource('import "../^" import');
182 computeFast();
183 expect(request.replacementOffset, completionOffset - 3);
184 expect(request.replacementLength, 3);
185 assertNotSuggested('completion.dart');
186 assertNotSuggested('other.dart');
187 assertNotSuggested('foo');
188 assertNotSuggested('foo/');
189 assertNotSuggested('foo/bar.dart');
190 assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
191 }
192
193 test_import_file_parent2() {
194 testFile = '/proj/completion.dart';
195 addSource('/proj/other.dart', 'library other;');
196 addSource('/proj/foo/bar.dart', 'library bar;');
197 addSource('/blat.dart', 'library blat;');
198 addTestSource('import "../b^" import');
199 computeFast();
200 expect(request.replacementOffset, completionOffset - 4);
201 expect(request.replacementLength, 4);
202 assertNotSuggested('completion.dart');
203 assertNotSuggested('other.dart');
204 assertNotSuggested('foo');
205 assertNotSuggested('foo/');
206 assertNotSuggested('foo/bar.dart');
207 assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
208 }
209
210 test_import_package() {
211 addPackageSource('foo', 'foo.dart', 'library foo;');
212 addPackageSource('foo', 'baz/too.dart', 'library too;');
213 addPackageSource('bar', 'bar.dart', 'library bar;');
214 addTestSource('import "p^" import');
215 computeFast();
216 expect(request.replacementOffset, completionOffset - 1);
217 expect(request.replacementLength, 1);
218 assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
219 assertSuggest('package:foo/', csKind: CompletionSuggestionKind.IMPORT);
220 assertSuggest('package:foo/foo.dart',
221 csKind: CompletionSuggestionKind.IMPORT);
222 assertSuggest('package:foo/baz/', csKind: CompletionSuggestionKind.IMPORT);
223 assertNotSuggested('package:foo/baz/too.dart');
224 assertSuggest('package:bar/', csKind: CompletionSuggestionKind.IMPORT);
225 assertSuggest('package:bar/bar.dart',
226 csKind: CompletionSuggestionKind.IMPORT);
227 }
228
229 test_import_package2() {
230 addPackageSource('foo', 'foo.dart', 'library foo;');
231 addPackageSource('foo', 'baz/too.dart', 'library too;');
232 addPackageSource('bar', 'bar.dart', 'library bar;');
233 addTestSource('import "package:foo/baz/^" import');
234 computeFast();
235 assertSuggest('package:foo/baz/too.dart',
236 csKind: CompletionSuggestionKind.IMPORT);
237 }
238
239 test_import_package2_raw() {
240 addPackageSource('foo', 'foo.dart', 'library foo;');
241 addPackageSource('foo', 'baz/too.dart', 'library too;');
242 addPackageSource('bar', 'bar.dart', 'library bar;');
243 addTestSource('import r"package:foo/baz/^" import');
244 computeFast();
245 assertSuggest('package:foo/baz/too.dart',
246 csKind: CompletionSuggestionKind.IMPORT);
247 }
248
249 test_import_package_missing_lib() {
250 var pkgSrc = addPackageSource('bar', 'bar.dart', 'library bar;');
251 provider.deleteFolder(dirname(pkgSrc.fullName));
252 addTestSource('import "p^" class');
253 computeFast();
254 expect(request.replacementOffset, completionOffset - 1);
255 expect(request.replacementLength, 1);
256 assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
257 assertSuggest('package:bar/', csKind: CompletionSuggestionKind.IMPORT);
258 assertNotSuggested('package:bar/bar.dart');
259 }
260
261 test_import_package_raw() {
262 addPackageSource('foo', 'foo.dart', 'library foo;');
263 addPackageSource('foo', 'baz/too.dart', 'library too;');
264 addPackageSource('bar', 'bar.dart', 'library bar;');
265 addTestSource('import r"p^" import');
266 computeFast();
267 expect(request.replacementOffset, completionOffset - 1);
268 expect(request.replacementLength, 1);
269 assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
270 assertSuggest('package:foo/', csKind: CompletionSuggestionKind.IMPORT);
271 assertSuggest('package:foo/foo.dart',
272 csKind: CompletionSuggestionKind.IMPORT);
273 assertSuggest('package:foo/baz/', csKind: CompletionSuggestionKind.IMPORT);
274 assertNotSuggested('package:foo/baz/too.dart');
275 assertSuggest('package:bar/', csKind: CompletionSuggestionKind.IMPORT);
276 assertSuggest('package:bar/bar.dart',
277 csKind: CompletionSuggestionKind.IMPORT);
278 }
279
280 test_import_raw() {
281 addTestSource('import r"^" import');
282 computeFast();
283 expect(request.replacementOffset, completionOffset);
284 expect(request.replacementLength, 0);
285 assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
286 assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
287 }
288
289 test_outside_import() {
290 addTestSource('import ^"d" import');
291 computeFast();
292 computeFull((_) {
293 assertNoSuggestions();
294 });
295 }
296
297 test_outside_import2() {
298 addTestSource('import "d"^ import');
299 computeFast();
300 computeFull((_) {
301 assertNoSuggestions();
302 });
303 }
304
305 test_part_file() {
306 testFile = '/proj/completion.dart';
307 addSource('/proj/other.dart', 'library other;');
308 addSource('/proj/foo/bar.dart', 'library bar;');
309 addSource('/blat.dart', 'library blat;');
310 addTestSource('library x; part "^" import');
311 computeFast();
312 expect(request.replacementOffset, completionOffset);
313 expect(request.replacementLength, 0);
314 assertNotSuggested('completion.dart');
315 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
316 assertNotSuggested('foo');
317 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
318 assertNotSuggested('foo/bar.dart');
319 assertNotSuggested('../blat.dart');
320 }
321
322 test_part_file2() {
323 testFile = '/proj/completion.dart';
324 addSource('/proj/other.dart', 'library other;');
325 addSource('/proj/foo/bar.dart', 'library bar;');
326 addSource('/blat.dart', 'library blat;');
327 addTestSource('library x; part "..^" import');
328 computeFast();
329 expect(request.replacementOffset, completionOffset - 2);
330 expect(request.replacementLength, 2);
331 assertNotSuggested('completion.dart');
332 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
333 assertNotSuggested('foo');
334 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
335 assertNotSuggested('foo/bar.dart');
336 assertNotSuggested('../blat.dart');
337 }
338
339 test_part_file_child() {
340 testFile = '/proj/completion.dart';
341 addSource('/proj/other.dart', 'library other;');
342 addSource('/proj/foo/bar.dart', 'library bar;');
343 addSource('/blat.dart', 'library blat;');
344 addTestSource('library x; part "foo/^" import');
345 computeFast();
346 expect(request.replacementOffset, completionOffset - 4);
347 expect(request.replacementLength, 4);
348 assertNotSuggested('completion.dart');
349 assertNotSuggested('other.dart');
350 assertNotSuggested('foo');
351 assertNotSuggested('foo/');
352 assertSuggest('foo/bar.dart', csKind: CompletionSuggestionKind.IMPORT);
353 assertNotSuggested('../blat.dart');
354 }
355
356 test_part_file_parent() {
357 testFile = '/proj/completion.dart';
358 addSource('/proj/other.dart', 'library other;');
359 addSource('/proj/foo/bar.dart', 'library bar;');
360 addSource('/blat.dart', 'library blat;');
361 addTestSource('library x; part "../^" import');
362 computeFast();
363 expect(request.replacementOffset, completionOffset - 3);
364 expect(request.replacementLength, 3);
365 assertNotSuggested('completion.dart');
366 assertNotSuggested('other.dart');
367 assertNotSuggested('foo');
368 assertNotSuggested('foo/');
369 assertNotSuggested('foo/bar.dart');
370 assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
371 }
372 }
373
374 @reflectiveTest
375 class UriContributorWindowsTest extends AbstractCompletionTest {
376 @override
377 void setUpContributor() {
378 contributor = new UriContributor();
379 }
380
381 @override
382 void setupResourceProvider() {
383 provider = new _TestWinResourceProvider();
384 }
385
386 test_import_file() {
387 testFile = '\\proj\\completion.dart';
388 addSource('\\proj\\other.dart', 'library other;');
389 addSource('\\proj\\foo\\bar.dart', 'library bar;');
390 addSource('\\blat.dart', 'library blat;');
391 addTestSource('import "^" import');
392 computeFast();
393 expect(request.replacementOffset, completionOffset);
394 expect(request.replacementLength, 0);
395 assertNotSuggested('completion.dart');
396 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
397 assertNotSuggested('foo');
398 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
399 assertNotSuggested('foo/bar.dart');
400 assertNotSuggested('../blat.dart');
401 }
402
403 test_import_file2() {
404 testFile = '\\proj\\completion.dart';
405 addSource('\\proj\\other.dart', 'library other;');
406 addSource('\\proj\\foo\\bar.dart', 'library bar;');
407 addSource('\\blat.dart', 'library blat;');
408 addTestSource('import "..^" import');
409 computeFast();
410 expect(request.replacementOffset, completionOffset - 2);
411 expect(request.replacementLength, 2);
412 assertNotSuggested('completion.dart');
413 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
414 assertNotSuggested('foo');
415 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
416 assertNotSuggested('foo/bar.dart');
417 assertNotSuggested('../blat.dart');
418 }
419
420 test_import_file_child() {
421 testFile = '\\proj\\completion.dart';
422 addSource('\\proj\\other.dart', 'library other;');
423 addSource('\\proj\\foo\\bar.dart', 'library bar;');
424 addSource('\\blat.dart', 'library blat;');
425 addTestSource('import "foo/^" import');
426 computeFast();
427 expect(request.replacementOffset, completionOffset - 4);
428 expect(request.replacementLength, 4);
429 assertNotSuggested('completion.dart');
430 assertNotSuggested('other.dart');
431 assertNotSuggested('foo');
432 assertNotSuggested('foo/');
433 assertSuggest('foo/bar.dart', csKind: CompletionSuggestionKind.IMPORT);
434 assertNotSuggested('../blat.dart');
435 }
436
437 test_import_file_parent() {
438 testFile = '\\proj\\completion.dart';
439 addSource('\\proj\\other.dart', 'library other;');
440 addSource('\\proj\\foo\\bar.dart', 'library bar;');
441 addSource('\\blat.dart', 'library blat;');
442 addTestSource('import "../^" import');
443 computeFast();
444 expect(request.replacementOffset, completionOffset - 3);
445 expect(request.replacementLength, 3);
446 assertNotSuggested('completion.dart');
447 assertNotSuggested('other.dart');
448 assertNotSuggested('foo');
449 assertNotSuggested('foo/');
450 assertNotSuggested('foo/bar.dart');
451 assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
452 }
453
454 test_import_file_parent2() {
455 testFile = '\\proj\\completion.dart';
456 addSource('\\proj\\other.dart', 'library other;');
457 addSource('\\proj\\foo\\bar.dart', 'library bar;');
458 addSource('\\blat.dart', 'library blat;');
459 addTestSource('import "../b^" import');
460 computeFast();
461 expect(request.replacementOffset, completionOffset - 4);
462 expect(request.replacementLength, 4);
463 assertNotSuggested('completion.dart');
464 assertNotSuggested('other.dart');
465 assertNotSuggested('foo');
466 assertNotSuggested('foo/');
467 assertNotSuggested('foo/bar.dart');
468 assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
469 }
470
471 test_part_file() {
472 testFile = '\\proj\\completion.dart';
473 addSource('\\proj\\other.dart', 'library other;');
474 addSource('\\proj\\foo\\bar.dart', 'library bar;');
475 addSource('\\blat.dart', 'library blat;');
476 addTestSource('library x; part "^" import');
477 computeFast();
478 expect(request.replacementOffset, completionOffset);
479 expect(request.replacementLength, 0);
480 assertNotSuggested('completion.dart');
481 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
482 assertNotSuggested('foo');
483 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
484 assertNotSuggested('foo/bar.dart');
485 assertNotSuggested('../blat.dart');
486 }
487
488 test_part_file2() {
489 testFile = '\\proj\\completion.dart';
490 addSource('\\proj\\other.dart', 'library other;');
491 addSource('\\proj\\foo\\bar.dart', 'library bar;');
492 addSource('\\blat.dart', 'library blat;');
493 addTestSource('library x; part "..^" import');
494 computeFast();
495 expect(request.replacementOffset, completionOffset - 2);
496 expect(request.replacementLength, 2);
497 assertNotSuggested('completion.dart');
498 assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
499 assertNotSuggested('foo');
500 assertSuggest('foo/', csKind: CompletionSuggestionKind.IMPORT);
501 assertNotSuggested('foo/bar.dart');
502 assertNotSuggested('../blat.dart');
503 }
504
505 test_part_file_child() {
506 testFile = '\\proj\\completion.dart';
507 addSource('\\proj\\other.dart', 'library other;');
508 addSource('\\proj\\foo\\bar.dart', 'library bar;');
509 addSource('\\blat.dart', 'library blat;');
510 addTestSource('library x; part "foo/^" import');
511 computeFast();
512 expect(request.replacementOffset, completionOffset - 4);
513 expect(request.replacementLength, 4);
514 assertNotSuggested('completion.dart');
515 assertNotSuggested('other.dart');
516 assertNotSuggested('foo');
517 assertNotSuggested('foo/');
518 assertSuggest('foo/bar.dart', csKind: CompletionSuggestionKind.IMPORT);
519 assertNotSuggested('../blat.dart');
520 }
521
522 test_part_file_parent() {
523 testFile = '\\proj\\completion.dart';
524 addSource('\\proj\\other.dart', 'library other;');
525 addSource('\\proj\\foo\\bar.dart', 'library bar;');
526 addSource('\\blat.dart', 'library blat;');
527 addTestSource('library x; part "../^" import');
528 computeFast();
529 expect(request.replacementOffset, completionOffset - 3);
530 expect(request.replacementLength, 3);
531 assertNotSuggested('completion.dart');
532 assertNotSuggested('other.dart');
533 assertNotSuggested('foo');
534 assertNotSuggested('foo/');
535 assertNotSuggested('foo/bar.dart');
536 assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
537 }
538 }
539
540 class _TestWinResourceProvider extends MemoryResourceProvider {
541 @override
542 Context get pathContext => windows;
543 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/services/completion/test_all.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698