| 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 library test.services.completion.util; | 5 library test.services.completion.util; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol.dart' as protocol show Element, | 9 import 'package:analysis_server/src/protocol.dart' as protocol show Element, |
| 10 ElementKind; | 10 ElementKind; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 } | 100 } |
| 101 | 101 |
| 102 CompletionSuggestion assertSuggestClass(String name, | 102 CompletionSuggestion assertSuggestClass(String name, |
| 103 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 103 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 104 CompletionSuggestion cs = | 104 CompletionSuggestion cs = |
| 105 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); | 105 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); |
| 106 protocol.Element element = cs.element; | 106 protocol.Element element = cs.element; |
| 107 expect(element, isNotNull); | 107 expect(element, isNotNull); |
| 108 expect(element.kind, equals(protocol.ElementKind.CLASS)); | 108 expect(element.kind, equals(protocol.ElementKind.CLASS)); |
| 109 expect(element.name, equals(name)); | 109 expect(element.name, equals(name)); |
| 110 expect(element.parameters, isNull); |
| 110 expect(element.returnType, isNull); | 111 expect(element.returnType, isNull); |
| 111 return cs; | 112 return cs; |
| 112 } | 113 } |
| 113 | 114 |
| 114 CompletionSuggestion assertSuggestFunction(String name, String returnType, | 115 CompletionSuggestion assertSuggestFunction(String name, String returnType, |
| 115 bool isDeprecated, [CompletionRelevance relevance = | 116 bool isDeprecated, [CompletionRelevance relevance = |
| 116 CompletionRelevance.DEFAULT]) { | 117 CompletionRelevance.DEFAULT]) { |
| 117 CompletionSuggestion cs = assertSuggest( | 118 CompletionSuggestion cs = assertSuggest( |
| 118 CompletionSuggestionKind.FUNCTION, | 119 CompletionSuggestionKind.FUNCTION, |
| 119 name, | 120 name, |
| 120 relevance, | 121 relevance, |
| 121 isDeprecated); | 122 isDeprecated); |
| 122 expect(cs.returnType, equals(returnType)); | 123 expect(cs.returnType, equals(returnType)); |
| 123 protocol.Element element = cs.element; | 124 protocol.Element element = cs.element; |
| 124 expect(element, isNotNull); | 125 expect(element, isNotNull); |
| 125 expect(element.kind, equals(protocol.ElementKind.FUNCTION)); | 126 expect(element.kind, equals(protocol.ElementKind.FUNCTION)); |
| 126 expect(element.name, equals(name)); | 127 expect(element.name, equals(name)); |
| 127 expect(element.isDeprecated, equals(isDeprecated)); | 128 expect(element.isDeprecated, equals(isDeprecated)); |
| 129 String param = element.parameters; |
| 130 expect(param, isNotNull); |
| 131 expect(param[0], equals('(')); |
| 132 expect(param[param.length - 1], equals(')')); |
| 128 expect( | 133 expect( |
| 129 element.returnType, | 134 element.returnType, |
| 130 equals(returnType != null ? returnType : 'dynamic')); | 135 equals(returnType != null ? returnType : 'dynamic')); |
| 131 return cs; | 136 return cs; |
| 132 } | 137 } |
| 133 | 138 |
| 134 CompletionSuggestion assertSuggestGetter(String name, String returnType, | 139 CompletionSuggestion assertSuggestGetter(String name, String returnType, |
| 135 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 140 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 136 CompletionSuggestion cs = | 141 CompletionSuggestion cs = |
| 137 assertSuggest(CompletionSuggestionKind.GETTER, name, relevance); | 142 assertSuggest(CompletionSuggestionKind.GETTER, name, relevance); |
| 138 expect(cs.returnType, equals(returnType)); | 143 expect(cs.returnType, equals(returnType)); |
| 139 protocol.Element element = cs.element; | 144 protocol.Element element = cs.element; |
| 140 expect(element, isNotNull); | 145 expect(element, isNotNull); |
| 141 expect(element.kind, equals(protocol.ElementKind.GETTER)); | 146 expect(element.kind, equals(protocol.ElementKind.GETTER)); |
| 142 expect(element.name, equals(name)); | 147 expect(element.name, equals(name)); |
| 148 //TODO (danrubel) getter should have parameters |
| 149 // but not used in code completion |
| 150 //expect(element.parameters, '()'); |
| 143 expect( | 151 expect( |
| 144 element.returnType, | 152 element.returnType, |
| 145 equals(returnType != null ? returnType : 'dynamic')); | 153 equals(returnType != null ? returnType : 'dynamic')); |
| 146 return cs; | 154 return cs; |
| 147 } | 155 } |
| 148 | 156 |
| 149 CompletionSuggestion assertSuggestLibraryPrefix(String prefix, | 157 CompletionSuggestion assertSuggestLibraryPrefix(String prefix, |
| 150 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 158 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 151 // Library prefix should only be suggested by ImportedComputer | 159 // Library prefix should only be suggested by ImportedComputer |
| 152 if (computer is ImportedComputer) { | 160 if (computer is ImportedComputer) { |
| 153 CompletionSuggestion cs = | 161 CompletionSuggestion cs = |
| 154 assertSuggest(CompletionSuggestionKind.LIBRARY_PREFIX, prefix, relevan
ce); | 162 assertSuggest(CompletionSuggestionKind.LIBRARY_PREFIX, prefix, relevan
ce); |
| 155 protocol.Element element = cs.element; | 163 protocol.Element element = cs.element; |
| 156 expect(element, isNotNull); | 164 expect(element, isNotNull); |
| 157 expect(element.kind, equals(protocol.ElementKind.LIBRARY)); | 165 expect(element.kind, equals(protocol.ElementKind.LIBRARY)); |
| 166 expect(element.parameters, isNull); |
| 158 expect(element.returnType, isNull); | 167 expect(element.returnType, isNull); |
| 159 return cs; | 168 return cs; |
| 160 } else { | 169 } else { |
| 161 return assertNotSuggested(prefix); | 170 return assertNotSuggested(prefix); |
| 162 } | 171 } |
| 163 } | 172 } |
| 164 | 173 |
| 165 CompletionSuggestion assertSuggestLocalVariable(String name, | 174 CompletionSuggestion assertSuggestLocalVariable(String name, |
| 166 String returnType, [CompletionRelevance relevance = | 175 String returnType, [CompletionRelevance relevance = |
| 167 CompletionRelevance.DEFAULT]) { | 176 CompletionRelevance.DEFAULT]) { |
| 168 // Local variables should only be suggested by LocalComputer | 177 // Local variables should only be suggested by LocalComputer |
| 169 if (computer is LocalComputer) { | 178 if (computer is LocalComputer) { |
| 170 CompletionSuggestion cs = | 179 CompletionSuggestion cs = |
| 171 assertSuggest(CompletionSuggestionKind.LOCAL_VARIABLE, name, relevance
); | 180 assertSuggest(CompletionSuggestionKind.LOCAL_VARIABLE, name, relevance
); |
| 172 expect(cs.returnType, equals(returnType)); | 181 expect(cs.returnType, equals(returnType)); |
| 173 protocol.Element element = cs.element; | 182 protocol.Element element = cs.element; |
| 174 expect(element, isNotNull); | 183 expect(element, isNotNull); |
| 175 expect(element.kind, equals(protocol.ElementKind.LOCAL_VARIABLE)); | 184 expect(element.kind, equals(protocol.ElementKind.LOCAL_VARIABLE)); |
| 176 expect(element.name, equals(name)); | 185 expect(element.name, equals(name)); |
| 186 expect(element.parameters, isNull); |
| 177 expect( | 187 expect( |
| 178 element.returnType, | 188 element.returnType, |
| 179 equals(returnType != null ? returnType : 'dynamic')); | 189 equals(returnType != null ? returnType : 'dynamic')); |
| 180 return cs; | 190 return cs; |
| 181 } else { | 191 } else { |
| 182 return assertNotSuggested(name); | 192 return assertNotSuggested(name); |
| 183 } | 193 } |
| 184 } | 194 } |
| 185 | 195 |
| 186 CompletionSuggestion assertSuggestMethod(String name, String declaringType, | 196 CompletionSuggestion assertSuggestMethod(String name, String declaringType, |
| 187 String returnType, [CompletionRelevance relevance = | 197 String returnType, [CompletionRelevance relevance = |
| 188 CompletionRelevance.DEFAULT]) { | 198 CompletionRelevance.DEFAULT]) { |
| 189 CompletionSuggestion cs = | 199 CompletionSuggestion cs = |
| 190 assertSuggest(CompletionSuggestionKind.METHOD, name, relevance); | 200 assertSuggest(CompletionSuggestionKind.METHOD, name, relevance); |
| 191 expect(cs.declaringType, equals(declaringType)); | 201 expect(cs.declaringType, equals(declaringType)); |
| 192 expect(cs.returnType, equals(returnType)); | 202 expect(cs.returnType, equals(returnType)); |
| 193 protocol.Element element = cs.element; | 203 protocol.Element element = cs.element; |
| 194 expect(element, isNotNull); | 204 expect(element, isNotNull); |
| 195 expect(element.kind, equals(protocol.ElementKind.METHOD)); | 205 expect(element.kind, equals(protocol.ElementKind.METHOD)); |
| 196 expect(element.name, equals(name)); | 206 expect(element.name, equals(name)); |
| 207 String param = element.parameters; |
| 208 expect(param, isNotNull); |
| 209 expect(param[0], equals('(')); |
| 210 expect(param[param.length - 1], equals(')')); |
| 197 expect( | 211 expect( |
| 198 element.returnType, | 212 element.returnType, |
| 199 equals(returnType != null ? returnType : 'dynamic')); | 213 equals(returnType != null ? returnType : 'dynamic')); |
| 200 return cs; | 214 return cs; |
| 201 } | 215 } |
| 202 | 216 |
| 203 CompletionSuggestion assertSuggestNamedConstructor(String name, | 217 CompletionSuggestion assertSuggestNamedConstructor(String name, |
| 204 String returnType, [CompletionRelevance relevance = | 218 String returnType, [CompletionRelevance relevance = |
| 205 CompletionRelevance.DEFAULT]) { | 219 CompletionRelevance.DEFAULT]) { |
| 206 if (computer is InvocationComputer) { | 220 if (computer is InvocationComputer) { |
| 207 CompletionSuggestion cs = | 221 CompletionSuggestion cs = |
| 208 assertSuggest(CompletionSuggestionKind.CONSTRUCTOR, name, relevance); | 222 assertSuggest(CompletionSuggestionKind.CONSTRUCTOR, name, relevance); |
| 209 protocol.Element element = cs.element; | 223 protocol.Element element = cs.element; |
| 210 expect(element, isNotNull); | 224 expect(element, isNotNull); |
| 211 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR)); | 225 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR)); |
| 212 expect(element.name, equals(name)); | 226 expect(element.name, equals(name)); |
| 227 String param = element.parameters; |
| 228 expect(param, isNotNull); |
| 229 expect(param[0], equals('(')); |
| 230 expect(param[param.length - 1], equals(')')); |
| 213 expect(element.returnType, equals(returnType)); | 231 expect(element.returnType, equals(returnType)); |
| 214 return cs; | 232 return cs; |
| 215 } else { | 233 } else { |
| 216 return assertNotSuggested(name); | 234 return assertNotSuggested(name); |
| 217 } | 235 } |
| 218 } | 236 } |
| 219 | 237 |
| 220 CompletionSuggestion assertSuggestParameter(String name, String returnType, | 238 CompletionSuggestion assertSuggestParameter(String name, String returnType, |
| 221 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 239 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 222 // Parameters should only be suggested by LocalComputer | 240 // Parameters should only be suggested by LocalComputer |
| 223 if (computer is LocalComputer) { | 241 if (computer is LocalComputer) { |
| 224 CompletionSuggestion cs = | 242 CompletionSuggestion cs = |
| 225 assertSuggest(CompletionSuggestionKind.PARAMETER, name, relevance); | 243 assertSuggest(CompletionSuggestionKind.PARAMETER, name, relevance); |
| 226 expect(cs.returnType, equals(returnType)); | 244 expect(cs.returnType, equals(returnType)); |
| 227 protocol.Element element = cs.element; | 245 protocol.Element element = cs.element; |
| 228 expect(element, isNotNull); | 246 expect(element, isNotNull); |
| 229 expect(element.kind, equals(protocol.ElementKind.PARAMETER)); | 247 expect(element.kind, equals(protocol.ElementKind.PARAMETER)); |
| 230 expect(element.name, equals(name)); | 248 expect(element.name, equals(name)); |
| 249 expect(element.parameters, isNull); |
| 231 expect( | 250 expect( |
| 232 element.returnType, | 251 element.returnType, |
| 233 equals(returnType != null ? returnType : 'dynamic')); | 252 equals(returnType != null ? returnType : 'dynamic')); |
| 234 return cs; | 253 return cs; |
| 235 } else { | 254 } else { |
| 236 return assertNotSuggested(name); | 255 return assertNotSuggested(name); |
| 237 } | 256 } |
| 238 } | 257 } |
| 239 | 258 |
| 240 CompletionSuggestion assertSuggestSetter(String name, | 259 CompletionSuggestion assertSuggestSetter(String name, |
| 241 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 260 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 242 CompletionSuggestion cs = | 261 CompletionSuggestion cs = |
| 243 assertSuggest(CompletionSuggestionKind.SETTER, name, relevance); | 262 assertSuggest(CompletionSuggestionKind.SETTER, name, relevance); |
| 244 protocol.Element element = cs.element; | 263 protocol.Element element = cs.element; |
| 245 expect(element, isNotNull); | 264 expect(element, isNotNull); |
| 246 expect(element.kind, equals(protocol.ElementKind.SETTER)); | 265 expect(element.kind, equals(protocol.ElementKind.SETTER)); |
| 247 expect(element.name, equals(name)); | 266 expect(element.name, equals(name)); |
| 267 // TODO (danrubel) assert setter param |
| 268 //expect(element.parameters, isNull); |
| 248 expect(element.returnType, isNull); | 269 expect(element.returnType, isNull); |
| 249 return cs; | 270 return cs; |
| 250 } | 271 } |
| 251 | 272 |
| 252 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType, | 273 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType, |
| 253 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 274 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 254 CompletionSuggestion cs = | 275 CompletionSuggestion cs = |
| 255 assertSuggest(CompletionSuggestionKind.TOP_LEVEL_VARIABLE, name, relevan
ce); | 276 assertSuggest(CompletionSuggestionKind.TOP_LEVEL_VARIABLE, name, relevan
ce); |
| 256 expect(cs.returnType, equals(returnType)); | 277 expect(cs.returnType, equals(returnType)); |
| 257 protocol.Element element = cs.element; | 278 protocol.Element element = cs.element; |
| 258 expect(element, isNotNull); | 279 expect(element, isNotNull); |
| 259 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE)); | 280 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE)); |
| 260 expect(element.name, equals(name)); | 281 expect(element.name, equals(name)); |
| 282 expect(element.parameters, isNull); |
| 261 //TODO (danrubel) return type level variable 'type' but not as 'returnType' | 283 //TODO (danrubel) return type level variable 'type' but not as 'returnType' |
| 262 // expect( | 284 // expect( |
| 263 // element.returnType, | 285 // element.returnType, |
| 264 // equals(returnType != null ? returnType : 'dynamic')); | 286 // equals(returnType != null ? returnType : 'dynamic')); |
| 265 return cs; | 287 return cs; |
| 266 } | 288 } |
| 267 | 289 |
| 268 void assertSuggestTopLevelVarGetterSetter(String name, String returnType, | 290 void assertSuggestTopLevelVarGetterSetter(String name, String returnType, |
| 269 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 291 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 270 if (computer is ImportedComputer) { | 292 if (computer is ImportedComputer) { |
| (...skipping 1344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1615 assertNotSuggested('bar2'); | 1637 assertNotSuggested('bar2'); |
| 1616 assertNotSuggested('_B'); | 1638 assertNotSuggested('_B'); |
| 1617 assertSuggestLocalClass('Y'); | 1639 assertSuggestLocalClass('Y'); |
| 1618 assertSuggestLocalClass('C'); | 1640 assertSuggestLocalClass('C'); |
| 1619 assertSuggestLocalVariable('f', null); | 1641 assertSuggestLocalVariable('f', null); |
| 1620 assertNotSuggested('x'); | 1642 assertNotSuggested('x'); |
| 1621 assertNotSuggested('e'); | 1643 assertNotSuggested('e'); |
| 1622 }); | 1644 }); |
| 1623 } | 1645 } |
| 1624 } | 1646 } |
| OLD | NEW |