| Index: tests/standalone/vmservice/test_helper.dart
|
| diff --git a/tests/standalone/vmservice/test_helper.dart b/tests/standalone/vmservice/test_helper.dart
|
| index 94c8ab8215a140425880f091e4e975f9cb31cc2d..128226071ffb9ac4a6f77981d7523e9c159e7275 100644
|
| --- a/tests/standalone/vmservice/test_helper.dart
|
| +++ b/tests/standalone/vmservice/test_helper.dart
|
| @@ -9,6 +9,47 @@ import 'dart:convert';
|
| import 'dart:io';
|
| import 'package:expect/expect.dart';
|
|
|
| +abstract class ServiceWebSocketRequestHelper {
|
| + final String url;
|
| + final Completer _completer = new Completer();
|
| + WebSocket _socket;
|
| +
|
| + ServiceWebSocketRequestHelper(this.url);
|
| +
|
| + // Returns [this] when connected.
|
| + Future connect() {
|
| + return WebSocket.connect(url).then((ws) {
|
| + _socket = ws;
|
| + _socket.listen((message) {
|
| + var map = JSON.decode(message);
|
| + var response = JSON.decode(map['response']);
|
| + onResponse(map['seq'], response);
|
| + });
|
| + return this;
|
| + });
|
| + }
|
| +
|
| + void complete() {
|
| + _completer.complete(this);
|
| + }
|
| +
|
| + Future get completed => _completer.future;
|
| +
|
| + // Must call complete.
|
| + void onResponse(var seq, Map response);
|
| + void runTest();
|
| +
|
| + Future sendMessage(var seq, List<String> path) {
|
| + var map = {
|
| + 'seq': seq,
|
| + 'path': path
|
| + };
|
| + var message = JSON.encode(map);
|
| + _socket.add(message);
|
| + return _completer.future;
|
| + }
|
| +}
|
| +
|
| abstract class VmServiceRequestHelper {
|
| final Uri uri;
|
| final HttpClient client;
|
|
|