e128dd9f14
BUG=dart:7066 Review URL: https://codereview.chromium.org//11570005 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16106 260f80e4-7a28-3924-810f-c04153c831b5
62 lines
1.5 KiB
Dart
62 lines
1.5 KiB
Dart
// Copyright (c) 2012, 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.
|
|
|
|
part of ServerTest;
|
|
|
|
abstract class TestingServer {
|
|
|
|
static const HOST = "127.0.0.1";
|
|
static const INIT = 0;
|
|
static const SHUTDOWN = -1;
|
|
|
|
void onConnection(Socket connection); // Abstract.
|
|
|
|
void errorHandlerServer(Exception e) {
|
|
Expect.fail("Server socket error $e");
|
|
}
|
|
|
|
void dispatch(message, SendPort replyTo) {
|
|
if (message == INIT) {
|
|
_server = new ServerSocket(HOST, 0, 10);
|
|
Expect.equals(true, _server != null);
|
|
_server.onConnection = onConnection;
|
|
_server.onError = errorHandlerServer;
|
|
replyTo.send(_server.port, null);
|
|
} else if (message == SHUTDOWN) {
|
|
_server.close();
|
|
port.close();
|
|
}
|
|
}
|
|
|
|
ServerSocket _server;
|
|
}
|
|
|
|
abstract class TestingServerTest {
|
|
|
|
TestingServerTest.start(SendPort port)
|
|
: _receivePort = new ReceivePort(),
|
|
_sendPort = port {
|
|
initialize();
|
|
}
|
|
|
|
void run(); // Abstract.
|
|
|
|
void initialize() {
|
|
_receivePort.receive((var message, SendPort replyTo) {
|
|
_port = message;
|
|
run();
|
|
});
|
|
_sendPort.send(TestingServer.INIT, _receivePort.toSendPort());
|
|
}
|
|
|
|
void shutdown() {
|
|
_sendPort.send(TestingServer.SHUTDOWN, _receivePort.toSendPort());
|
|
_receivePort.close();
|
|
}
|
|
|
|
int _port;
|
|
ReceivePort _receivePort;
|
|
SendPort _sendPort;
|
|
}
|