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

Side by Side Diff: pkg/analysis_server/test/analysis_server_test.dart

Issue 807993002: Ensure that AnalysisContext futures are completed when context disposed. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Handle case of computeAsync called after dispose Created 6 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 test.analysis_server; 5 library test.analysis_server;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
10 import 'package:analysis_server/src/constants.dart'; 10 import 'package:analysis_server/src/constants.dart';
(...skipping 30 matching lines...) Expand all
41 channel, 41 channel,
42 resourceProvider, 42 resourceProvider,
43 new MockPackageMapProvider(), 43 new MockPackageMapProvider(),
44 null, 44 null,
45 new AnalysisServerOptions(), 45 new AnalysisServerOptions(),
46 new MockSdk(), 46 new MockSdk(),
47 InstrumentationService.NULL_SERVICE, 47 InstrumentationService.NULL_SERVICE,
48 rethrowExceptions: true); 48 rethrowExceptions: true);
49 } 49 }
50 50
51 Future test_contextDisposed() {
52 resourceProvider.newFolder('/foo');
53 resourceProvider.newFile('/foo/bar.dart', 'library lib;');
54 server.setAnalysisRoots('0', ['/foo'], [], {});
55 AnalysisContext context;
56 return pumpEventQueue().then((_) {
57 context = server.getAnalysisContext('/foo/bar.dart');
58 server.setAnalysisRoots('1', [], [], {});
59 }).then((_) => pumpEventQueue()).then((_) {
60 expect(context.isDisposed, isTrue);
61 });
62 }
63
51 Future test_contextsChangedEvent() { 64 Future test_contextsChangedEvent() {
52 resourceProvider.newFolder('/foo'); 65 resourceProvider.newFolder('/foo');
53 66
54 bool wasAdded = false; 67 bool wasAdded = false;
55 bool wasChanged = false; 68 bool wasChanged = false;
56 bool wasRemoved = false; 69 bool wasRemoved = false;
57 server.onContextsChanged.listen((ContextsChangedEvent event) { 70 server.onContextsChanged.listen((ContextsChangedEvent event) {
58 wasAdded = event.added.length == 1; 71 wasAdded = event.added.length == 1;
59 if (wasAdded) { 72 if (wasAdded) {
60 expect(event.added[0], isNotNull); 73 expect(event.added[0], isNotNull);
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 @override 228 @override
216 Response handleRequest(Request request) { 229 Response handleRequest(Request request) {
217 if (request.method == 'echo') { 230 if (request.method == 'echo') {
218 return new Response(request.id, result: { 231 return new Response(request.id, result: {
219 'echo': true 232 'echo': true
220 }); 233 });
221 } 234 }
222 return null; 235 return null;
223 } 236 }
224 } 237 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | pkg/analyzer/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698