| Index: pkg/analysis_server/test/domain_analysis_test.dart
|
| diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart
|
| index fee5b590d11d33e37866e9903a4ee0a9e95ac7bc..c57182633d8680ca596cb077ed68ffbcb447a04b 100644
|
| --- a/pkg/analysis_server/test/domain_analysis_test.dart
|
| +++ b/pkg/analysis_server/test/domain_analysis_test.dart
|
| @@ -10,8 +10,7 @@ import 'package:analysis_server/src/analysis_server.dart';
|
| import 'package:analysis_server/src/constants.dart';
|
| import 'package:analysis_server/src/domain_analysis.dart';
|
| import 'package:analysis_server/src/protocol.dart';
|
| -import 'package:analysis_server/src/protocol2.dart' show AnalysisService,
|
| - AnalysisError, AnalysisErrorsParams;
|
| +import 'package:analysis_server/src/protocol2.dart';
|
| import 'package:analysis_testing/mock_sdk.dart';
|
| import 'package:analysis_testing/reflective_tests.dart';
|
| import 'package:analyzer/file_system/memory_file_system.dart';
|
| @@ -49,13 +48,12 @@ main() {
|
|
|
| group('AnalysisDomainHandler', () {
|
| group('setAnalysisRoots', () {
|
| - Request request;
|
| -
|
| - setUp(() {
|
| - request = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS);
|
| - request.setParameter(INCLUDED, []);
|
| - request.setParameter(EXCLUDED, []);
|
| - });
|
| + Response testSetAnalysisRoots(List<String> included,
|
| + List<String> excluded) {
|
| + Request request = new AnalysisSetAnalysisRootsParams(included,
|
| + excluded).toRequest('0');
|
| + return handler.handleRequest(request);
|
| + }
|
|
|
| group('excluded', () {
|
| test('excluded folder', () {
|
| @@ -65,9 +63,7 @@ main() {
|
| resourceProvider.newFolder(project);
|
| resourceProvider.newFile(fileA, '// a');
|
| resourceProvider.newFile(fileB, '// b');
|
| - request.setParameter(INCLUDED, [project]);
|
| - request.setParameter(EXCLUDED, ['/project/bbb']);
|
| - var response = handler.handleRequest(request);
|
| + var response = testSetAnalysisRoots([project], ['/project/bbb']);
|
| var serverRef = server;
|
| expect(response, isResponseSuccess('0'));
|
| // unit "a" is resolved eventually
|
| @@ -84,8 +80,7 @@ main() {
|
| resourceProvider.newFolder('/project');
|
| resourceProvider.newFile('/project/pubspec.yaml', 'name: project');
|
| resourceProvider.newFile('/project/bin/test.dart', 'main() {}');
|
| - request.setParameter(INCLUDED, ['/project']);
|
| - var response = handler.handleRequest(request);
|
| + var response = testSetAnalysisRoots(['/project'], []);
|
| var serverRef = server;
|
| expect(response, isResponseSuccess('0'));
|
| // verify that unit is resolved eventually
|
| @@ -100,8 +95,10 @@ main() {
|
|
|
| group('setPriorityFiles', () {
|
| test('invalid', () {
|
| - var request = new Request('0', ANALYSIS_SET_PRIORITY_FILES);
|
| - request.setParameter(FILES, ['/project/lib.dart']);
|
| + // TODO(paulberry): under the "eventual consistency" model this request
|
| + // should not be invalid.
|
| + var request = new AnalysisSetPriorityFilesParams(
|
| + ['/project/lib.dart']).toRequest('0');
|
| var response = handler.handleRequest(request);
|
| expect(response, isResponseFailure('0'));
|
| });
|
| @@ -113,15 +110,14 @@ main() {
|
| resourceProvider.newFile('/p2/b.dart', 'library b;');
|
| resourceProvider.newFile('/p2/c.dart', 'library c;');
|
|
|
| - var setRootsRequest = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS);
|
| - setRootsRequest.setParameter(INCLUDED, ['/p1', '/p2']);
|
| - setRootsRequest.setParameter(EXCLUDED, []);
|
| + var setRootsRequest = new AnalysisSetAnalysisRootsParams(
|
| + ['/p1', '/p2'], []).toRequest('0');
|
| var setRootsResponse = handler.handleRequest(setRootsRequest);
|
| expect(setRootsResponse, isResponseSuccess('0'));
|
|
|
| void setPriorityFiles(List<String> fileList) {
|
| - var request = new Request('0', ANALYSIS_SET_PRIORITY_FILES);
|
| - request.setParameter(FILES, fileList);
|
| + var request = new AnalysisSetPriorityFilesParams(
|
| + fileList).toRequest('0');
|
| var response = handler.handleRequest(request);
|
| expect(response, isResponseSuccess('0'));
|
| // TODO(brianwilkerson) Enable the line below after getPriorityFiles
|
| @@ -137,10 +133,9 @@ main() {
|
|
|
| group('updateOptions', () {
|
| test('invalid', () {
|
| - var request = new Request('0', ANALYSIS_UPDATE_OPTIONS);
|
| - request.setParameter(OPTIONS, {
|
| + var request = new Request('0', ANALYSIS_UPDATE_OPTIONS, {OPTIONS: {
|
| 'not-an-option': true
|
| - });
|
| + }});
|
| var response = handler.handleRequest(request);
|
| // Invalid options should be silently ignored.
|
| expect(response, isResponseSuccess('0'));
|
| @@ -148,19 +143,16 @@ main() {
|
|
|
| // TODO(paulberry): disabled because analyzeAngular is currently not in the API.
|
| // test('valid', () {
|
| -// AnalysisOptions options = server.contextDirectoryManager.defaultOptions;
|
| -// bool analyzeAngular = !options.analyzeAngular;
|
| -// bool enableDeferredLoading = options.enableDeferredLoading;
|
| -// var request = new Request('0', ANALYSIS_UPDATE_OPTIONS);
|
| -// request.setParameter(OPTIONS, {
|
| -// 'analyzeAngular': analyzeAngular,
|
| -// 'enableDeferredLoading': enableDeferredLoading,
|
| -// 'enableEnums': false
|
| -// });
|
| +// engine.AnalysisOptions oldOptions = server.contextDirectoryManager.defaultOptions;
|
| +// bool analyzeAngular = !oldOptions.analyzeAngular;
|
| +// bool enableDeferredLoading = oldOptions.enableDeferredLoading;
|
| +// var newOptions = new AnalysisOptions(analyzeAngular: analyzeAngular,
|
| +// enableDeferredLoading: enableDeferredLoading, enableEnums: false);
|
| +// var request = new AnalysisUpdateOptionsParams(newOptions).toRequest('0');
|
| // var response = handler.handleRequest(request);
|
| // expect(response, isResponseSuccess('0'));
|
| -// expect(options.analyzeAngular, equals(analyzeAngular));
|
| -// expect(options.enableDeferredLoading, equals(enableDeferredLoading));
|
| +// expect(oldOptions.analyzeAngular, equals(analyzeAngular));
|
| +// expect(oldOptions.enableDeferredLoading, equals(enableDeferredLoading));
|
| // });
|
| });
|
| });
|
| @@ -172,10 +164,11 @@ testUpdateContent() {
|
| AnalysisTestHelper helper = new AnalysisTestHelper();
|
| helper.createSingleFileProject('// empty');
|
| return helper.waitForOperationsFinished().then((_) {
|
| - Request request = new Request('0', ANALYSIS_UPDATE_CONTENT);
|
| - request.setParameter('files', {
|
| - helper.testFile: {
|
| - TYPE: 'foo',
|
| + Request request = new Request('0', ANALYSIS_UPDATE_CONTENT, {
|
| + 'files': {
|
| + helper.testFile: {
|
| + TYPE: 'foo',
|
| + }
|
| }
|
| });
|
| Response response = helper.handler.handleRequest(request);
|
| @@ -191,10 +184,7 @@ testUpdateContent() {
|
| List<AnalysisError> errors = helper.getTestErrors();
|
| expect(errors, isEmpty);
|
| // update code
|
| - helper.sendContentChange({
|
| - TYPE: ADD,
|
| - CONTENT: 'library lib'
|
| - });
|
| + helper.sendContentChange(new AddContentOverlay('library lib'));
|
| // wait, there is an error
|
| return helper.waitForOperationsFinished().then((_) {
|
| List<AnalysisError> errors = helper.getTestErrors();
|
| @@ -212,19 +202,10 @@ testUpdateContent() {
|
| List<AnalysisError> errors = helper.getTestErrors();
|
| expect(errors, isEmpty);
|
| // Add the file to the cache
|
| - helper.sendContentChange({
|
| - TYPE: ADD,
|
| - CONTENT: initialContent
|
| - });
|
| + helper.sendContentChange(new AddContentOverlay(initialContent));
|
| // update code
|
| - helper.sendContentChange({
|
| - TYPE: CHANGE,
|
| - EDITS: [{
|
| - REPLACEMENT: 'lib',
|
| - OFFSET: 'library '.length,
|
| - LENGTH: 'A;'.length
|
| - }]
|
| - });
|
| + helper.sendContentChange(new ChangeContentOverlay([
|
| + new SourceEdit('library '.length, 'A;'.length, 'lib')]));
|
| // wait, there is an error
|
| return helper.waitForOperationsFinished().then((_) {
|
| List<AnalysisError> errors = helper.getTestErrors();
|
| @@ -255,10 +236,7 @@ testUpdateContent() {
|
| helper.createSingleFileProject('library A;');
|
| return helper.waitForOperationsFinished().then((_) {
|
| // update code
|
| - helper.sendContentChange({
|
| - TYPE: ADD,
|
| - CONTENT: 'library B;'
|
| - });
|
| + helper.sendContentChange(new AddContentOverlay('library B;'));
|
| // There should be no errors
|
| return helper.waitForOperationsFinished().then((_) {
|
| expect(helper.getTestErrors(), hasLength(0));
|
| @@ -269,9 +247,7 @@ testUpdateContent() {
|
| expect(helper.getTestErrors(), hasLength(0));
|
| // Send a content change with a null content param--file should be
|
| // reread from disk.
|
| - helper.sendContentChange({
|
| - TYPE: REMOVE
|
| - });
|
| + helper.sendContentChange(new RemoveContentOverlay());
|
| // There should be errors now.
|
| return helper.waitForOperationsFinished().then((_) {
|
| expect(helper.getTestErrors(), hasLength(1));
|
| @@ -435,7 +411,7 @@ class AnalysisTestHelper {
|
| AnalysisServer server;
|
| AnalysisDomainHandler handler;
|
|
|
| - Map<String, List<String>> analysisSubscriptions = {};
|
| + Map<AnalysisService, List<String>> analysisSubscriptions = {};
|
|
|
| Map<String, List<AnalysisError>> filesErrors = {};
|
| Map<String, List<Map<String, Object>>> filesHighlights = {};
|
| @@ -475,15 +451,15 @@ class AnalysisTestHelper {
|
|
|
| void addAnalysisSubscription(AnalysisService service, String file) {
|
| // add file to subscription
|
| - var files = analysisSubscriptions[service.name];
|
| + var files = analysisSubscriptions[service];
|
| if (files == null) {
|
| files = <String>[];
|
| - analysisSubscriptions[service.name] = files;
|
| + analysisSubscriptions[service] = files;
|
| }
|
| files.add(file);
|
| // set subscriptions
|
| - Request request = new Request('0', ANALYSIS_SET_SUBSCRIPTIONS);
|
| - request.setParameter(SUBSCRIPTIONS, analysisSubscriptions);
|
| + Request request = new AnalysisSetSubscriptionsParams(
|
| + analysisSubscriptions).toRequest('0');
|
| handleSuccessfulRequest(request);
|
| }
|
|
|
| @@ -500,9 +476,8 @@ class AnalysisTestHelper {
|
| */
|
| void createEmptyProject() {
|
| resourceProvider.newFolder('/project');
|
| - Request request = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS);
|
| - request.setParameter(INCLUDED, ['/project']);
|
| - request.setParameter(EXCLUDED, []);
|
| + Request request = new AnalysisSetAnalysisRootsParams(['/project'],
|
| + []).toRequest('0');
|
| handleSuccessfulRequest(request);
|
| }
|
|
|
| @@ -514,9 +489,8 @@ class AnalysisTestHelper {
|
| this.testCode = _getCodeString(code);
|
| resourceProvider.newFolder('/project');
|
| resourceProvider.newFile(testFile, testCode);
|
| - Request request = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS);
|
| - request.setParameter(INCLUDED, ['/project']);
|
| - request.setParameter(EXCLUDED, []);
|
| + Request request = new AnalysisSetAnalysisRootsParams(['/project'],
|
| + []).toRequest('0');
|
| handleSuccessfulRequest(request);
|
| }
|
|
|
| @@ -601,11 +575,9 @@ class AnalysisTestHelper {
|
| /**
|
| * Send an `updateContent` request for [testFile].
|
| */
|
| - void sendContentChange(Map contentChange) {
|
| - Request request = new Request('0', ANALYSIS_UPDATE_CONTENT);
|
| - request.setParameter('files', {
|
| - testFile: contentChange
|
| - });
|
| + void sendContentChange(dynamic contentChange) {
|
| + Request request = new AnalysisUpdateContentParams({
|
| + testFile: contentChange}).toRequest('0');
|
| handleSuccessfulRequest(request);
|
| }
|
|
|
|
|