OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 analysis_server.test.src.utilities.change_builder_dart_test; | 5 library analysis_server.test.src.utilities.change_builder_dart_test; |
6 | 6 |
7 import 'package:analysis_server/src/protocol.dart'; | 7 import 'package:analysis_server/src/protocol.dart'; |
8 import 'package:analysis_server/src/utilities/change_builder_dart.dart'; | 8 import 'package:analysis_server/src/utilities/change_builder_dart.dart'; |
9 import 'package:analysis_server/utilities/change_builder_dart.dart'; | 9 import 'package:analysis_server/utilities/change_builder_dart.dart'; |
10 import 'package:analyzer/src/generated/ast.dart'; | 10 import 'package:analyzer/src/generated/ast.dart'; |
11 import 'package:analyzer/src/generated/source.dart'; | 11 import 'package:analyzer/src/generated/source.dart'; |
12 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 12 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
13 import 'package:unittest/unittest.dart'; | 13 import 'package:unittest/unittest.dart'; |
14 | 14 |
15 import '../../abstract_context.dart'; | 15 import '../../abstract_context.dart'; |
| 16 import '../../utils.dart'; |
16 | 17 |
17 main() { | 18 main() { |
18 groupSep = ' | '; | 19 initializeTestEnvironment(); |
19 defineReflectiveTests(DartChangeBuilderImplTest); | 20 defineReflectiveTests(DartChangeBuilderImplTest); |
20 defineReflectiveTests(DartEditBuilderImplTest); | 21 defineReflectiveTests(DartEditBuilderImplTest); |
21 defineReflectiveTests(DartFileEditBuilderImplTest); | 22 defineReflectiveTests(DartFileEditBuilderImplTest); |
22 } | 23 } |
23 | 24 |
24 @reflectiveTest | 25 @reflectiveTest |
25 class DartChangeBuilderImplTest extends AbstractContextTest { | 26 class DartChangeBuilderImplTest extends AbstractContextTest { |
26 void test_createFileEditBuilder() { | 27 void test_createFileEditBuilder() { |
27 Source source = addSource('/test.dart', 'library test;'); | 28 Source source = addSource('/test.dart', 'library test;'); |
28 resolveLibraryUnit(source); | 29 resolveLibraryUnit(source); |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 | 355 |
355 void test_writeGetterDeclaration_returnType() { | 356 void test_writeGetterDeclaration_returnType() { |
356 String content = 'class A {} class B {}'; | 357 String content = 'class A {} class B {}'; |
357 Source source = addSource('/test.dart', content); | 358 Source source = addSource('/test.dart', content); |
358 CompilationUnit unit = resolveLibraryUnit(source); | 359 CompilationUnit unit = resolveLibraryUnit(source); |
359 ClassDeclaration classA = unit.declarations[0]; | 360 ClassDeclaration classA = unit.declarations[0]; |
360 | 361 |
361 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context); | 362 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context); |
362 builder.addFileEdit(source, 1, (DartFileEditBuilderImpl builder) { | 363 builder.addFileEdit(source, 1, (DartFileEditBuilderImpl builder) { |
363 builder.addInsertion(content.length - 1, (DartEditBuilderImpl builder) { | 364 builder.addInsertion(content.length - 1, (DartEditBuilderImpl builder) { |
364 builder.writeGetterDeclaration('g', returnType: classA.element.type, ret
urnTypeGroupName: 'returnType'); | 365 builder.writeGetterDeclaration('g', |
| 366 returnType: classA.element.type, returnTypeGroupName: 'returnType'); |
365 }); | 367 }); |
366 }); | 368 }); |
367 SourceEdit edit = getEdit(builder); | 369 SourceEdit edit = getEdit(builder); |
368 expect(edit.replacement, equalsIgnoringWhitespace('A get g => null;')); | 370 expect(edit.replacement, equalsIgnoringWhitespace('A get g => null;')); |
369 | 371 |
370 List<LinkedEditGroup> linkedEditGroups = | 372 List<LinkedEditGroup> linkedEditGroups = |
371 builder.sourceChange.linkedEditGroups; | 373 builder.sourceChange.linkedEditGroups; |
372 expect(linkedEditGroups, hasLength(1)); | 374 expect(linkedEditGroups, hasLength(1)); |
373 LinkedEditGroup group = linkedEditGroups[0]; | 375 LinkedEditGroup group = linkedEditGroups[0]; |
374 expect(group.length, 1); | 376 expect(group.length, 1); |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
591 }); | 593 }); |
592 SourceEdit edit = getEdit(builder); | 594 SourceEdit edit = getEdit(builder); |
593 expect(edit.replacement, equalsIgnoringWhitespace('C')); | 595 expect(edit.replacement, equalsIgnoringWhitespace('C')); |
594 | 596 |
595 List<LinkedEditGroup> linkedEditGroups = | 597 List<LinkedEditGroup> linkedEditGroups = |
596 builder.sourceChange.linkedEditGroups; | 598 builder.sourceChange.linkedEditGroups; |
597 expect(linkedEditGroups, hasLength(1)); | 599 expect(linkedEditGroups, hasLength(1)); |
598 LinkedEditGroup group = linkedEditGroups[0]; | 600 LinkedEditGroup group = linkedEditGroups[0]; |
599 List<LinkedEditSuggestion> suggestions = group.suggestions; | 601 List<LinkedEditSuggestion> suggestions = group.suggestions; |
600 expect(suggestions, hasLength(4)); | 602 expect(suggestions, hasLength(4)); |
601 Iterable<String> values = suggestions | 603 Iterable<String> values = |
602 .map((LinkedEditSuggestion suggestion) { | 604 suggestions.map((LinkedEditSuggestion suggestion) { |
603 expect(suggestion.kind, LinkedEditSuggestionKind.TYPE); | 605 expect(suggestion.kind, LinkedEditSuggestionKind.TYPE); |
604 return suggestion.value; | 606 return suggestion.value; |
605 }); | 607 }); |
606 expect(values, contains('Object')); | 608 expect(values, contains('Object')); |
607 expect(values, contains('A')); | 609 expect(values, contains('A')); |
608 expect(values, contains('B')); | 610 expect(values, contains('B')); |
609 expect(values, contains('C')); | 611 expect(values, contains('C')); |
610 } | 612 } |
611 | 613 |
612 void test_writeType_null() { | 614 void test_writeType_null() { |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
739 String content = 'class A {} class B {}'; | 741 String content = 'class A {} class B {}'; |
740 Source source = addSource('/test.dart', content); | 742 Source source = addSource('/test.dart', content); |
741 CompilationUnit unit = resolveLibraryUnit(source); | 743 CompilationUnit unit = resolveLibraryUnit(source); |
742 ClassDeclaration classA = unit.declarations[0]; | 744 ClassDeclaration classA = unit.declarations[0]; |
743 ClassDeclaration classB = unit.declarations[1]; | 745 ClassDeclaration classB = unit.declarations[1]; |
744 | 746 |
745 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context); | 747 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context); |
746 builder.addFileEdit(source, 1, (DartFileEditBuilderImpl builder) { | 748 builder.addFileEdit(source, 1, (DartFileEditBuilderImpl builder) { |
747 builder.addInsertion(content.length - 1, (DartEditBuilder builder) { | 749 builder.addInsertion(content.length - 1, (DartEditBuilder builder) { |
748 (builder as DartEditBuilderImpl).writeTypes( | 750 (builder as DartEditBuilderImpl).writeTypes( |
749 [classA.element.type, classB.element.type], prefix: 'implements '); | 751 [classA.element.type, classB.element.type], |
| 752 prefix: 'implements '); |
750 }); | 753 }); |
751 }); | 754 }); |
752 SourceEdit edit = getEdit(builder); | 755 SourceEdit edit = getEdit(builder); |
753 expect(edit.replacement, equalsIgnoringWhitespace('implements A, B')); | 756 expect(edit.replacement, equalsIgnoringWhitespace('implements A, B')); |
754 } | 757 } |
755 } | 758 } |
756 | 759 |
757 @reflectiveTest | 760 @reflectiveTest |
758 class DartFileEditBuilderImplTest extends AbstractContextTest { | 761 class DartFileEditBuilderImplTest extends AbstractContextTest { |
759 void test_createEditBuilder() { | 762 void test_createEditBuilder() { |
760 Source source = addSource('/test.dart', 'library test;'); | 763 Source source = addSource('/test.dart', 'library test;'); |
761 resolveLibraryUnit(source); | 764 resolveLibraryUnit(source); |
762 int timeStamp = 65; | 765 int timeStamp = 65; |
763 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context); | 766 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context); |
764 builder.addFileEdit(source, timeStamp, (DartFileEditBuilderImpl builder) { | 767 builder.addFileEdit(source, timeStamp, (DartFileEditBuilderImpl builder) { |
765 int offset = 4; | 768 int offset = 4; |
766 int length = 5; | 769 int length = 5; |
767 DartEditBuilderImpl editBuilder = | 770 DartEditBuilderImpl editBuilder = |
768 builder.createEditBuilder(offset, length); | 771 builder.createEditBuilder(offset, length); |
769 expect(editBuilder, new isInstanceOf<DartEditBuilder>()); | 772 expect(editBuilder, new isInstanceOf<DartEditBuilder>()); |
770 SourceEdit sourceEdit = editBuilder.sourceEdit; | 773 SourceEdit sourceEdit = editBuilder.sourceEdit; |
771 expect(sourceEdit.length, length); | 774 expect(sourceEdit.length, length); |
772 expect(sourceEdit.offset, offset); | 775 expect(sourceEdit.offset, offset); |
773 expect(sourceEdit.replacement, isEmpty); | 776 expect(sourceEdit.replacement, isEmpty); |
774 }); | 777 }); |
775 } | 778 } |
776 } | 779 } |
OLD | NEW |