9f49af72fc
Once the 'analysis.updateSdks' request is functional, this should be unnecessary. But for now, allow the default SDK to be set via the command line so that we don't block development of editor plugins. R=scheglov@google.com Review URL: https://codereview.chromium.org//394923004 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38443 260f80e4-7a28-3924-810f-c04153c831b5
66 lines
2.6 KiB
Dart
66 lines
2.6 KiB
Dart
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
library test.socket.server;
|
|
|
|
import 'dart:async';
|
|
|
|
import 'mocks.dart';
|
|
|
|
import 'package:analysis_server/src/constants.dart';
|
|
import 'package:analysis_server/src/protocol.dart';
|
|
import 'package:analysis_server/src/socket_server.dart';
|
|
import 'package:analyzer/src/generated/sdk_io.dart';
|
|
import 'package:unittest/unittest.dart';
|
|
|
|
main() {
|
|
group('SocketServer', () {
|
|
test('createAnalysisServer_successful',
|
|
SocketServerTest.createAnalysisServer_successful);
|
|
test('createAnalysisServer_alreadyStarted',
|
|
SocketServerTest.createAnalysisServer_alreadyStarted);
|
|
});
|
|
}
|
|
|
|
class SocketServerTest {
|
|
static Future createAnalysisServer_successful() {
|
|
SocketServer server = new SocketServer(DirectoryBasedDartSdk.defaultSdk);
|
|
MockServerChannel channel = new MockServerChannel();
|
|
server.createAnalysisServer(channel);
|
|
channel.expectMsgCount(notificationCount: 1);
|
|
expect(channel.notificationsReceived[0].event, SERVER_CONNECTED);
|
|
expect(channel.notificationsReceived[0].params, isEmpty);
|
|
return channel.sendRequest(
|
|
new Request('0', SERVER_SHUTDOWN)
|
|
).then((Response response) {
|
|
expect(response.id, equals('0'));
|
|
expect(response.error, isNull);
|
|
channel.expectMsgCount(responseCount: 1, notificationCount: 1);
|
|
});
|
|
}
|
|
|
|
static void createAnalysisServer_alreadyStarted() {
|
|
SocketServer server = new SocketServer(DirectoryBasedDartSdk.defaultSdk);
|
|
MockServerChannel channel1 = new MockServerChannel();
|
|
MockServerChannel channel2 = new MockServerChannel();
|
|
server.createAnalysisServer(channel1);
|
|
expect(channel1.notificationsReceived[0].event, SERVER_CONNECTED);
|
|
expect(channel1.notificationsReceived[0].params, isEmpty);
|
|
server.createAnalysisServer(channel2);
|
|
channel1.expectMsgCount(notificationCount: 1);
|
|
channel2.expectMsgCount(responseCount: 1);
|
|
expect(channel2.responsesReceived[0].id, equals(''));
|
|
expect(channel2.responsesReceived[0].error, isNotNull);
|
|
expect(channel2.responsesReceived[0].error.code, equals(
|
|
RequestError.CODE_SERVER_ALREADY_STARTED));
|
|
channel2.sendRequest(new Request('0', SERVER_SHUTDOWN)).then((Response response) {
|
|
expect(response.id, equals('0'));
|
|
expect(response.error, isNotNull);
|
|
expect(response.error.code, equals(
|
|
RequestError.CODE_SERVER_ALREADY_STARTED));
|
|
channel2.expectMsgCount(responseCount: 2);
|
|
});
|
|
}
|
|
}
|