OLD | NEW |
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 import 'package:analysis_server/protocol/protocol_generated.dart'; | 5 import 'package:analysis_server/protocol/protocol_generated.dart'; |
6 import 'package:analyzer_plugin/protocol/protocol_common.dart'; | 6 import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
7 import 'package:test/test.dart'; | 7 import 'package:test/test.dart'; |
8 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 8 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
9 | 9 |
10 import '../support/integration_tests.dart'; | 10 import '../support/integration_tests.dart'; |
(...skipping 15 matching lines...) Expand all Loading... |
26 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once'); | 26 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once'); |
27 completionOffset = content.indexOf('^'); | 27 completionOffset = content.indexOf('^'); |
28 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^'); | 28 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^'); |
29 int nextOffset = content.indexOf('^', completionOffset + 1); | 29 int nextOffset = content.indexOf('^', completionOffset + 1); |
30 expect(nextOffset, equals(-1), reason: 'too many ^'); | 30 expect(nextOffset, equals(-1), reason: 'too many ^'); |
31 this.content = content.substring(0, completionOffset) + | 31 this.content = content.substring(0, completionOffset) + |
32 content.substring(completionOffset + 1); | 32 content.substring(completionOffset + 1); |
33 } | 33 } |
34 | 34 |
35 test_getSuggestions() async { | 35 test_getSuggestions() async { |
36 setTestSource( | 36 setTestSource('test.dart', r''' |
37 'test.dart', | |
38 r''' | |
39 String test = ''; | 37 String test = ''; |
40 main() { | 38 main() { |
41 test.^ | 39 test.^ |
42 } | 40 } |
43 '''); | 41 '''); |
44 writeFile(path, content); | 42 writeFile(path, content); |
45 await standardAnalysisSetup(); | 43 await standardAnalysisSetup(); |
46 await analysisFinished; | 44 await analysisFinished; |
47 CompletionGetSuggestionsResult result = | 45 CompletionGetSuggestionsResult result = |
48 await sendCompletionGetSuggestions(path, completionOffset); | 46 await sendCompletionGetSuggestions(path, completionOffset); |
49 String completionId = result.id; | 47 String completionId = result.id; |
50 CompletionResultsParams param = await onCompletionResults.firstWhere( | 48 CompletionResultsParams param = await onCompletionResults.firstWhere( |
51 (CompletionResultsParams param) => | 49 (CompletionResultsParams param) => |
52 param.id == completionId && param.isLast); | 50 param.id == completionId && param.isLast); |
53 expect(param.replacementOffset, completionOffset); | 51 expect(param.replacementOffset, completionOffset); |
54 expect(param.replacementLength, 0); | 52 expect(param.replacementLength, 0); |
55 param.results.firstWhere( | 53 param.results.firstWhere( |
56 (CompletionSuggestion suggestion) => suggestion.completion == 'length'); | 54 (CompletionSuggestion suggestion) => suggestion.completion == 'length'); |
57 } | 55 } |
58 | 56 |
59 test_getSuggestions_onlyOverlay() async { | 57 test_getSuggestions_onlyOverlay() async { |
60 setTestSource( | 58 setTestSource('test.dart', r''' |
61 'test.dart', | |
62 r''' | |
63 String test = ''; | 59 String test = ''; |
64 main() { | 60 main() { |
65 test.^ | 61 test.^ |
66 } | 62 } |
67 '''); | 63 '''); |
68 // Create an overlay but do not write the file to "disk" | 64 // Create an overlay but do not write the file to "disk" |
69 // writeFile(pathname, text); | 65 // writeFile(pathname, text); |
70 await standardAnalysisSetup(); | 66 await standardAnalysisSetup(); |
71 await sendAnalysisUpdateContent({path: new AddContentOverlay(content)}); | 67 await sendAnalysisUpdateContent({path: new AddContentOverlay(content)}); |
72 await analysisFinished; | 68 await analysisFinished; |
73 CompletionGetSuggestionsResult result = | 69 CompletionGetSuggestionsResult result = |
74 await sendCompletionGetSuggestions(path, completionOffset); | 70 await sendCompletionGetSuggestions(path, completionOffset); |
75 String completionId = result.id; | 71 String completionId = result.id; |
76 CompletionResultsParams param = await onCompletionResults.firstWhere( | 72 CompletionResultsParams param = await onCompletionResults.firstWhere( |
77 (CompletionResultsParams param) => | 73 (CompletionResultsParams param) => |
78 param.id == completionId && param.isLast); | 74 param.id == completionId && param.isLast); |
79 expect(param.replacementOffset, completionOffset); | 75 expect(param.replacementOffset, completionOffset); |
80 expect(param.replacementLength, 0); | 76 expect(param.replacementLength, 0); |
81 param.results.firstWhere( | 77 param.results.firstWhere( |
82 (CompletionSuggestion suggestion) => suggestion.completion == 'length'); | 78 (CompletionSuggestion suggestion) => suggestion.completion == 'length'); |
83 } | 79 } |
84 | 80 |
85 test_getSuggestions_onlyOverlay_noWait() async { | 81 test_getSuggestions_onlyOverlay_noWait() async { |
86 setTestSource( | 82 setTestSource('test.dart', r''' |
87 'test.dart', | |
88 r''' | |
89 String test = ''; | 83 String test = ''; |
90 main() { | 84 main() { |
91 test.^ | 85 test.^ |
92 } | 86 } |
93 '''); | 87 '''); |
94 // Create an overlay but do not write the file to "disk" | 88 // Create an overlay but do not write the file to "disk" |
95 // writeFile(pathname, text); | 89 // writeFile(pathname, text); |
96 // Don't wait for any results except the completion notifications | 90 // Don't wait for any results except the completion notifications |
97 standardAnalysisSetup(subscribeStatus: false); | 91 standardAnalysisSetup(subscribeStatus: false); |
98 sendAnalysisUpdateContent({path: new AddContentOverlay(content)}); | 92 sendAnalysisUpdateContent({path: new AddContentOverlay(content)}); |
(...skipping 16 matching lines...) Expand all Loading... |
115 //sendAnalysisUpdateContent({path: new AddContentOverlay(content)}); | 109 //sendAnalysisUpdateContent({path: new AddContentOverlay(content)}); |
116 var errorToken = 'exception from server'; | 110 var errorToken = 'exception from server'; |
117 return sendCompletionGetSuggestions(path, 0).catchError((e) { | 111 return sendCompletionGetSuggestions(path, 0).catchError((e) { |
118 // Exception expected | 112 // Exception expected |
119 return errorToken; | 113 return errorToken; |
120 }).then((result) { | 114 }).then((result) { |
121 expect(result, new isInstanceOf<CompletionGetSuggestionsResult>()); | 115 expect(result, new isInstanceOf<CompletionGetSuggestionsResult>()); |
122 }); | 116 }); |
123 } | 117 } |
124 } | 118 } |
OLD | NEW |