Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(518)

Side by Side Diff: pkg/analyzer_plugin/test/plugin/fix_mixin_test.dart

Issue 2932553004: Add tests for recently added mixins and improve plugin tests (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
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.
4
5 import 'dart:async';
6
7 import 'package:analyzer/dart/analysis/results.dart' hide AnalysisResult;
8 import 'package:analyzer/error/error.dart';
9 import 'package:analyzer/file_system/file_system.dart';
10 import 'package:analyzer/file_system/memory_file_system.dart';
11 import 'package:analyzer/src/dart/analysis/driver.dart';
12 import 'package:analyzer/src/error/codes.dart';
13 import 'package:analyzer/src/generated/source.dart';
14 import 'package:analyzer_plugin/plugin/fix_mixin.dart';
15 import 'package:analyzer_plugin/protocol/protocol_common.dart'
16 hide AnalysisError;
17 import 'package:analyzer_plugin/protocol/protocol_generated.dart';
18 import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
19 import 'package:path/src/context.dart';
20 import 'package:test/test.dart';
21 import 'package:test_reflective_loader/test_reflective_loader.dart';
22
23 import 'mocks.dart';
24
25 void main() {
26 defineReflectiveTests(FixesMixinTest);
27 }
28
29 @reflectiveTest
30 class FixesMixinTest {
31 MemoryResourceProvider resourceProvider = new MemoryResourceProvider();
32
33 String packagePath1;
34 String filePath1;
35 ContextRoot contextRoot1;
36
37 MockChannel channel;
38 _TestServerPlugin plugin;
39
40 void setUp() {
41 Context pathContext = resourceProvider.pathContext;
42
43 packagePath1 = resourceProvider.convertPath('/package1');
44 filePath1 = pathContext.join(packagePath1, 'lib', 'test.dart');
45 resourceProvider.newFile(filePath1, '');
46 contextRoot1 = new ContextRoot(packagePath1, <String>[]);
47
48 channel = new MockChannel();
49 plugin = new _TestServerPlugin(resourceProvider);
50 plugin.start(channel);
51 }
52
53 test_handleEditGetFixes() async {
54 await plugin.handleAnalysisSetContextRoots(
55 new AnalysisSetContextRootsParams([contextRoot1]));
56
57 EditGetFixesResult result =
58 await plugin.handleEditGetFixes(new EditGetFixesParams(filePath1, 13));
59 expect(result, isNotNull);
60 List<AnalysisErrorFixes> fixes = result.fixes;
61 expect(fixes, hasLength(1));
62 expect(fixes[0].fixes, hasLength(3));
63 }
64 }
65
66 class _TestFixContributor implements FixContributor {
67 List<PrioritizedSourceChange> changes;
68
69 _TestFixContributor(this.changes);
70
71 @override
72 void computeFixes(FixesRequest request, FixCollector collector) {
73 for (PrioritizedSourceChange change in changes) {
74 collector.addFix(request.error, change);
75 }
76 }
77 }
78
79 class _TestServerPlugin extends MockServerPlugin with FixesMixin {
80 _TestServerPlugin(ResourceProvider resourceProvider)
81 : super(resourceProvider);
82
83 PrioritizedSourceChange createChange() {
84 return new PrioritizedSourceChange(0, new SourceChange(''));
85 }
86
87 @override
88 List<FixContributor> getFixContributors(AnalysisDriverGeneric driver) {
89 return <FixContributor>[
90 new _TestFixContributor(<PrioritizedSourceChange>[createChange()]),
91 new _TestFixContributor(
92 <PrioritizedSourceChange>[createChange(), createChange()])
93 ];
94 }
95
96 @override
97 Future<ResolveResult> getResolveResultForFixes(
98 AnalysisDriverGeneric driver, String path) async {
99 AnalysisError error = new AnalysisError(
100 new MockSource(), 0, 0, CompileTimeErrorCode.AWAIT_IN_WRONG_CONTEXT);
101 return new AnalysisResult(null, null, null, null, null, null,
102 new LineInfo([0, 20]), null, null, [error], null);
103 }
104 }
OLDNEW
« no previous file with comments | « pkg/analyzer_plugin/test/plugin/completion_mixin_test.dart ('k') | pkg/analyzer_plugin/test/plugin/mocks.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698