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

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

Issue 303233007: First cut at server timing tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixed some bugs, added tests Created 6 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 | Annotate | Revision Log
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:analyzer/src/generated/engine.dart'; 9 import 'package:analyzer/src/generated/engine.dart';
10 import 'package:analyzer/src/generated/error.dart'; 10 import 'package:analyzer/src/generated/error.dart';
11 import 'package:analyzer/src/generated/source.dart';
11 import 'package:analysis_server/src/analysis_server.dart'; 12 import 'package:analysis_server/src/analysis_server.dart';
12 import 'package:analysis_server/src/constants.dart'; 13 import 'package:analysis_server/src/constants.dart';
13 import 'package:analysis_server/src/domain_server.dart'; 14 import 'package:analysis_server/src/domain_server.dart';
14 import 'package:analysis_server/src/protocol.dart'; 15 import 'package:analysis_server/src/protocol.dart';
15 import 'package:analysis_server/src/resource.dart'; 16 import 'package:analysis_server/src/resource.dart';
16 import 'package:mock/mock.dart'; 17 import 'package:mock/mock.dart';
17 import 'package:unittest/unittest.dart'; 18 import 'package:unittest/unittest.dart';
18 19
19 import 'mocks.dart'; 20 import 'mocks.dart';
20 21
(...skipping 15 matching lines...) Expand all
36 test('addContextToWorkQueue_whenNotRunning', () { 37 test('addContextToWorkQueue_whenNotRunning', () {
37 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); 38 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
38 helper.server.running = false; 39 helper.server.running = false;
39 MockAnalysisContext context = new MockAnalysisContext(); 40 MockAnalysisContext context = new MockAnalysisContext();
40 helper.server.addContextToWorkQueue(context); 41 helper.server.addContextToWorkQueue(context);
41 // Pump the event queue to make sure the server doesn't try to do any 42 // Pump the event queue to make sure the server doesn't try to do any
42 // analysis. 43 // analysis.
43 return pumpEventQueue(); 44 return pumpEventQueue();
44 }); 45 });
45 46
47 test('server.status notifications', () {
48 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
49 MockAnalysisContext context = new MockAnalysisContext();
50 MockSource source = new MockSource();
51 source.when(callsTo('get fullName')).alwaysReturn('foo.dart');
52 source.when(callsTo('get isInSystemLibrary')).alwaysReturn(false);
53 ChangeNoticeImpl notice = new ChangeNoticeImpl(source);
54 notice.setErrors([], new LineInfo([0]));
55 AnalysisResult firstResult = new AnalysisResult([notice], 0, '', 0);
56 AnalysisResult lastResult = new AnalysisResult(null, 1, '', 1);
57 context.when(callsTo("performAnalysisTask"))
58 ..thenReturn(firstResult, 3)
59 ..thenReturn(lastResult);
60 helper.server.addContextToWorkQueue(context);
61 // Pump the event queue to make sure the server has finished any
62 // analysis.
63 return pumpEventQueue().then((_) {
64 List<Notification> notifications = helper.channel.notificationsReceived;
65 expect(notifications.length, equals(9));
66 Notification notification = notifications[notifications.length - 1];
67 Map analysisStatus = notification.params['analysis'];
68 expect(analysisStatus['analyzing'], isFalse);
69 });
70 });
71
46 test('echo', () { 72 test('echo', () {
47 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); 73 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
48 helper.server.handlers = [new EchoHandler()]; 74 helper.server.handlers = [new EchoHandler()];
49 var request = new Request('my22', 'echo'); 75 var request = new Request('my22', 'echo');
50 return helper.channel.sendRequest(request) 76 return helper.channel.sendRequest(request)
51 .then((Response response) { 77 .then((Response response) {
52 expect(response.id, equals('my22')); 78 expect(response.id, equals('my22'));
53 expect(response.error, isNull); 79 expect(response.error, isNull);
54 }); 80 });
55 }); 81 });
56 82
57 test('errorToJson_formattingApplied', () { 83 test('errorToJson_formattingApplied', () {
58 MockSource source = new MockSource(); 84 MockSource source = new MockSource();
59 source.when(callsTo('get encoding')).alwaysReturn('foo.dart'); 85 source.when(callsTo('get encoding')).alwaysReturn('foo.dart');
60 CompileTimeErrorCode errorCode = CompileTimeErrorCode.AMBIGUOUS_EXPORT; 86 CompileTimeErrorCode errorCode = CompileTimeErrorCode.AMBIGUOUS_EXPORT;
61 AnalysisError analysisError = 87 AnalysisError analysisError =
62 new AnalysisError.con1(source, errorCode, ['foo', 'bar', 'baz']); 88 new AnalysisError.con1(source, errorCode, ['foo', 'bar', 'baz']);
63 Map<String, Object> json = AnalysisServer.errorToJson(analysisError); 89 Map<String, Object> json = AnalysisServer.errorToJson(analysisError);
64 90
65 expect(json['message'], 91 expect(json['message'],
66 equals("The name 'foo' is defined in the libraries 'bar' and 'baz'")); 92 equals("The element 'foo' is defined in the libraries 'bar' and 'baz'" ));
67 }); 93 });
68 94
69 test('errorToJson_noCorrection', () { 95 test('errorToJson_noCorrection', () {
70 MockSource source = new MockSource(); 96 MockSource source = new MockSource();
71 source.when(callsTo('get fullName')).alwaysReturn('foo.dart'); 97 source.when(callsTo('get fullName')).alwaysReturn('foo.dart');
72 CompileTimeErrorCode errorCode = 98 CompileTimeErrorCode errorCode =
73 CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER; 99 CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER;
74 AnalysisError analysisError = 100 AnalysisError analysisError =
75 new AnalysisError.con2(source, 10, 5, errorCode, ['Foo']); 101 new AnalysisError.con2(source, 10, 5, errorCode, ['Foo']);
76 Map<String, Object> json = AnalysisServer.errorToJson(analysisError); 102 Map<String, Object> json = AnalysisServer.errorToJson(analysisError);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 @override 164 @override
139 Response handleRequest(Request request) { 165 Response handleRequest(Request request) {
140 if (request.method == 'echo') { 166 if (request.method == 'echo') {
141 var response = new Response(request.id); 167 var response = new Response(request.id);
142 response.setResult('echo', true); 168 response.setResult('echo', true);
143 return response; 169 return response;
144 } 170 }
145 return null; 171 return null;
146 } 172 }
147 } 173 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698