| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'package:analyzer_plugin/protocol/protocol_common.dart'; | |
| import 'package:test/test.dart'; | |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; | |
| import '../support/integration_tests.dart'; | |
| void main() { | |
| defineReflectiveSuite(() { | |
| defineReflectiveTests(GetNavigationTest); | |
| }); | |
| } | |
| @reflectiveTest | |
| class GetNavigationTest extends AbstractAnalysisServerIntegrationTest { | |
| Future<void> test_navigation() async { | |
| var pathname = sourcePath('test.dart'); | |
| var text = r''' | |
| class Foo {} | |
| class Bar { | |
| Foo foo; | |
| } | |
| '''; | |
| writeFile(pathname, text); | |
| await standardAnalysisSetup(); | |
| await analysisFinished; | |
| var result = await sendAnalysisGetNavigation( | |
| pathname, | |
| text.indexOf('Foo foo'), | |
| 0, | |
| ); | |
| expect(result.targets, hasLength(1)); | |
| var target = result.targets.first; | |
| expect(target.kind, ElementKind.CLASS); | |
| expect(target.offset, text.indexOf('Foo {}')); | |
| expect(target.length, 3); | |
| expect(target.startLine, 1); | |
| expect(target.startColumn, 7); | |
| } | |
| Future<void> test_navigation_no_result() async { | |
| var pathname = sourcePath('test.dart'); | |
| var text = r''' | |
| // | |
| class Foo {} | |
| class Bar { | |
| Foo foo; | |
| } | |
| '''; | |
| writeFile(pathname, text); | |
| await standardAnalysisSetup(); | |
| await analysisFinished; | |
| var result = await sendAnalysisGetNavigation(pathname, 0, 0); | |
| expect(result.targets, isEmpty); | |
| } | |
| } |