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.analysis.notification.navigation; | 5 library test.analysis.notification.navigation; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/src/constants.dart'; | 9 import 'package:analysis_server/src/constants.dart'; |
10 import 'package:analysis_server/src/protocol.dart'; | 10 import 'package:analysis_server/src/protocol.dart'; |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 '''); | 248 '''); |
249 return prepareNavigation().then((_) { | 249 return prepareNavigation().then((_) { |
250 // has region for complete "A.named" | 250 // has region for complete "A.named" |
251 assertHasRegion("A(BBB"); | 251 assertHasRegion("A(BBB"); |
252 assertHasTarget("A(BBB", 0); | 252 assertHasTarget("A(BBB", 0); |
253 // validate that we don't forget to resolve parameters | 253 // validate that we don't forget to resolve parameters |
254 assertHasRegionTarget('BBB p', 'BBB {}'); | 254 assertHasRegionTarget('BBB p', 'BBB {}'); |
255 }); | 255 }); |
256 } | 256 } |
257 | 257 |
| 258 test_factoryRedirectingConstructor_implicit() { |
| 259 addTestFile(''' |
| 260 class A { |
| 261 factory A() = B; |
| 262 } |
| 263 class B { |
| 264 } |
| 265 '''); |
| 266 return prepareNavigation().then((_) { |
| 267 assertHasRegion('B;'); |
| 268 assertHasTarget('B {'); |
| 269 }); |
| 270 } |
| 271 |
| 272 test_factoryRedirectingConstructor_implicit_withTypeArgument() { |
| 273 addTestFile(''' |
| 274 class A {} |
| 275 class B { |
| 276 factory B() = C<A>; |
| 277 } |
| 278 class C<T> {} |
| 279 '''); |
| 280 return prepareNavigation().then((_) { |
| 281 { |
| 282 assertHasRegion('C<A>'); |
| 283 assertHasTarget('C<T> {'); |
| 284 } |
| 285 { |
| 286 assertHasRegion('A>;'); |
| 287 assertHasTarget('A {'); |
| 288 } |
| 289 }); |
| 290 } |
| 291 |
| 292 test_factoryRedirectingConstructor_named() { |
| 293 addTestFile(''' |
| 294 class A { |
| 295 factory A() = B.named; |
| 296 } |
| 297 class B { |
| 298 B.named(); |
| 299 } |
| 300 '''); |
| 301 return prepareNavigation().then((_) { |
| 302 assertHasRegionString('B.named'); |
| 303 assertHasTarget('named();'); |
| 304 }); |
| 305 } |
| 306 |
| 307 test_factoryRedirectingConstructor_named_withTypeArgument() { |
| 308 addTestFile(''' |
| 309 class A {} |
| 310 class B { |
| 311 factory B.named() = C<A>.named; |
| 312 } |
| 313 class C<T> { |
| 314 C.named() {} |
| 315 } |
| 316 '''); |
| 317 return prepareNavigation().then((_) { |
| 318 { |
| 319 assertHasRegion('C<A>'); |
| 320 assertHasTarget('named() {}'); |
| 321 } |
| 322 { |
| 323 assertHasRegion('A>.named'); |
| 324 assertHasTarget('A {'); |
| 325 } |
| 326 { |
| 327 assertHasRegion('.named;', '.named'.length); |
| 328 assertHasTarget('named() {}'); |
| 329 } |
| 330 }); |
| 331 } |
| 332 |
| 333 test_factoryRedirectingConstructor_unnamed() { |
| 334 addTestFile(''' |
| 335 class A { |
| 336 factory A() = B; |
| 337 } |
| 338 class B { |
| 339 B() {} |
| 340 } |
| 341 '''); |
| 342 return prepareNavigation().then((_) { |
| 343 assertHasRegion('B;'); |
| 344 assertHasTarget('B() {}', 0); |
| 345 }); |
| 346 } |
| 347 |
| 348 test_factoryRedirectingConstructor_unnamed_withTypeArgument() { |
| 349 addTestFile(''' |
| 350 class A {} |
| 351 class B { |
| 352 factory B() = C<A>; |
| 353 } |
| 354 class C<T> { |
| 355 C() {} |
| 356 } |
| 357 '''); |
| 358 return prepareNavigation().then((_) { |
| 359 { |
| 360 assertHasRegion('C<A>'); |
| 361 assertHasTarget('C() {}', 0); |
| 362 } |
| 363 { |
| 364 assertHasRegion('A>;'); |
| 365 assertHasTarget('A {'); |
| 366 } |
| 367 }); |
| 368 } |
| 369 |
| 370 test_factoryRedirectingConstructor_unresolved() { |
| 371 addTestFile(''' |
| 372 class A { |
| 373 factory A() = B; |
| 374 } |
| 375 '''); |
| 376 return prepareNavigation().then((_) { |
| 377 // don't check regions, but there should be no exceptions |
| 378 }); |
| 379 } |
| 380 |
258 test_fieldFormalParameter() { | 381 test_fieldFormalParameter() { |
259 addTestFile(''' | 382 addTestFile(''' |
260 class AAA { | 383 class AAA { |
261 int fff = 123; | 384 int fff = 123; |
262 AAA(this.fff); | 385 AAA(this.fff); |
263 } | 386 } |
264 '''); | 387 '''); |
265 return prepareNavigation().then((_) { | 388 return prepareNavigation().then((_) { |
266 assertHasRegionTarget('fff);', 'fff = 123'); | 389 assertHasRegionTarget('fff);', 'fff = 123'); |
267 }); | 390 }); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 return prepareNavigation().then((_) { | 486 return prepareNavigation().then((_) { |
364 assertHasRegionString('new A.named'); | 487 assertHasRegionString('new A.named'); |
365 assertHasTarget('named() {}'); | 488 assertHasTarget('named() {}'); |
366 }); | 489 }); |
367 } | 490 } |
368 | 491 |
369 test_instanceCreation_named_withTypeArgument() { | 492 test_instanceCreation_named_withTypeArgument() { |
370 addTestFile(''' | 493 addTestFile(''' |
371 class A {} | 494 class A {} |
372 class B<T> { | 495 class B<T> { |
373 A.named() {} | 496 B.named() {} |
374 } | 497 } |
375 main() { | 498 main() { |
376 new B<A>.named(); | 499 new B<A>.named(); |
377 } | 500 } |
378 '''); | 501 '''); |
379 return prepareNavigation().then((_) { | 502 return prepareNavigation().then((_) { |
380 { | 503 { |
381 assertHasRegionString('new B'); | 504 assertHasRegionString('new B'); |
382 assertHasTarget('named() {}'); | 505 assertHasTarget('named() {}'); |
383 } | 506 } |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 test_type_void() { | 770 test_type_void() { |
648 addTestFile(''' | 771 addTestFile(''' |
649 void main() { | 772 void main() { |
650 } | 773 } |
651 '''); | 774 '''); |
652 return prepareNavigation().then((_) { | 775 return prepareNavigation().then((_) { |
653 assertNoRegionAt('void'); | 776 assertNoRegionAt('void'); |
654 }); | 777 }); |
655 } | 778 } |
656 } | 779 } |
OLD | NEW |