| Index: pkg/analysis_server/test/analysis_server_test.dart
|
| diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart
|
| index 94f5e406aa79cfc4bf3cea20b8f2e9a5974227fd..712cb5ce67b154b0021034917d781b914fd78e15 100644
|
| --- a/pkg/analysis_server/test/analysis_server_test.dart
|
| +++ b/pkg/analysis_server/test/analysis_server_test.dart
|
| @@ -131,34 +131,6 @@ import "../foo/foo.dart";
|
| });
|
| }
|
|
|
| - test_getAnalysisContext_nested() {
|
| - String dir1Path = '/dir1';
|
| - String dir2Path = dir1Path + '/dir2';
|
| - String filePath = dir2Path + '/file.dart';
|
| - Folder dir1 = resourceProvider.newFolder(dir1Path);
|
| - Folder dir2 = resourceProvider.newFolder(dir2Path);
|
| - resourceProvider.newFile(filePath, 'library lib;');
|
| -
|
| - AnalysisContext context1 = AnalysisEngine.instance.createAnalysisContext();
|
| - AnalysisContext context2 = AnalysisEngine.instance.createAnalysisContext();
|
| - server.folderMap[dir1] = context1;
|
| - server.folderMap[dir2] = context2;
|
| -
|
| - expect(server.getAnalysisContext(filePath), context2);
|
| - }
|
| -
|
| - test_getAnalysisContext_simple() {
|
| - String dirPath = '/dir';
|
| - String filePath = dirPath + '/file.dart';
|
| - Folder dir = resourceProvider.newFolder(dirPath);
|
| - resourceProvider.newFile(filePath, 'library lib;');
|
| -
|
| - AnalysisContext context = AnalysisEngine.instance.createAnalysisContext();
|
| - server.folderMap[dir] = context;
|
| -
|
| - expect(server.getAnalysisContext(filePath), context);
|
| - }
|
| -
|
| Future test_contextsChangedEvent() {
|
| resourceProvider.newFolder('/foo');
|
|
|
| @@ -217,6 +189,34 @@ import "../foo/foo.dart";
|
| });
|
| }
|
|
|
| + test_getAnalysisContext_nested() {
|
| + String dir1Path = '/dir1';
|
| + String dir2Path = dir1Path + '/dir2';
|
| + String filePath = dir2Path + '/file.dart';
|
| + Folder dir1 = resourceProvider.newFolder(dir1Path);
|
| + Folder dir2 = resourceProvider.newFolder(dir2Path);
|
| + resourceProvider.newFile(filePath, 'library lib;');
|
| +
|
| + AnalysisContext context1 = AnalysisEngine.instance.createAnalysisContext();
|
| + AnalysisContext context2 = AnalysisEngine.instance.createAnalysisContext();
|
| + server.folderMap[dir1] = context1;
|
| + server.folderMap[dir2] = context2;
|
| +
|
| + expect(server.getAnalysisContext(filePath), context2);
|
| + }
|
| +
|
| + test_getAnalysisContext_simple() {
|
| + String dirPath = '/dir';
|
| + String filePath = dirPath + '/file.dart';
|
| + Folder dir = resourceProvider.newFolder(dirPath);
|
| + resourceProvider.newFile(filePath, 'library lib;');
|
| +
|
| + AnalysisContext context = AnalysisEngine.instance.createAnalysisContext();
|
| + server.folderMap[dir] = context;
|
| +
|
| + expect(server.getAnalysisContext(filePath), context);
|
| + }
|
| +
|
| Future test_getAnalysisContextForSource() {
|
| // Subscribe to STATUS so we'll know when analysis is done.
|
| server.serverServices = [ServerService.STATUS].toSet();
|
| @@ -293,6 +293,25 @@ import "../foo/foo.dart";
|
| }
|
| }
|
|
|
| + test_operationsRemovedOnContextDisposal() async {
|
| + resourceProvider.newFolder('/foo');
|
| + resourceProvider.newFile('/foo/baz.dart', 'library lib;');
|
| + resourceProvider.newFolder('/bar');
|
| + resourceProvider.newFile('/bar/baz.dart', 'library lib;');
|
| + server.setAnalysisRoots('0', ['/foo', '/bar'], [], {});
|
| + await pumpEventQueue();
|
| + AnalysisContext contextFoo = server.getAnalysisContext('/foo/baz.dart');
|
| + AnalysisContext contextBar = server.getAnalysisContext('/bar/baz.dart');
|
| + _MockServerOperation operationFoo = new _MockServerOperation(contextFoo);
|
| + _MockServerOperation operationBar = new _MockServerOperation(contextBar);
|
| + server.scheduleOperation(operationFoo);
|
| + server.scheduleOperation(operationBar);
|
| + server.setAnalysisRoots('1', ['/foo'], [], {});
|
| + await pumpEventQueue();
|
| + expect(operationFoo.isComplete, isTrue);
|
| + expect(operationBar.isComplete, isFalse);
|
| + }
|
| +
|
| Future test_prioritySourcesChangedEvent() {
|
| resourceProvider.newFolder('/foo');
|
|
|
| @@ -405,3 +424,22 @@ class EchoHandler implements RequestHandler {
|
| return null;
|
| }
|
| }
|
| +
|
| +/**
|
| + * A [ServerOperation] that does nothing but keep track of whether or not it
|
| + * has been performed.
|
| + */
|
| +class _MockServerOperation implements ServerOperation {
|
| + final AnalysisContext context;
|
| + bool isComplete = false;
|
| +
|
| + _MockServerOperation(this.context);
|
| +
|
| + @override
|
| + ServerOperationPriority get priority => ServerOperationPriority.ANALYSIS;
|
| +
|
| + @override
|
| + void perform(AnalysisServer server) {
|
| + isComplete = true;
|
| + }
|
| +}
|
|
|