| Index: lib/src/runner/browser/iframe_test.dart
|
| diff --git a/lib/src/runner/browser/iframe_test.dart b/lib/src/runner/browser/iframe_test.dart
|
| deleted file mode 100644
|
| index 07e4bfd20c1eddd0240ca30e6bae04d30058202f..0000000000000000000000000000000000000000
|
| --- a/lib/src/runner/browser/iframe_test.dart
|
| +++ /dev/null
|
| @@ -1,97 +0,0 @@
|
| -// Copyright (c) 2015, 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.
|
| -
|
| -import 'package:stream_channel/stream_channel.dart';
|
| -
|
| -import '../../backend/group.dart';
|
| -import '../../backend/live_test.dart';
|
| -import '../../backend/live_test_controller.dart';
|
| -import '../../backend/metadata.dart';
|
| -import '../../backend/operating_system.dart';
|
| -import '../../backend/state.dart';
|
| -import '../../backend/suite.dart';
|
| -import '../../backend/test.dart';
|
| -import '../../backend/test_platform.dart';
|
| -import '../../utils.dart';
|
| -import '../../util/remote_exception.dart';
|
| -import '../../util/stack_trace_mapper.dart';
|
| -
|
| -/// A test in a running iframe.
|
| -class IframeTest extends Test {
|
| - final String name;
|
| - final Metadata metadata;
|
| -
|
| - /// The mapper used to map stack traces for errors coming from this test, or
|
| - /// `null`.
|
| - final StackTraceMapper _mapper;
|
| -
|
| - /// The channel used to communicate with the test's [IframeListener].
|
| - final MultiChannel _channel;
|
| -
|
| - IframeTest(this.name, this.metadata, this._channel, {StackTraceMapper mapper})
|
| - : _mapper = mapper;
|
| -
|
| - LiveTest load(Suite suite, {Iterable<Group> groups}) {
|
| - var controller;
|
| - var testChannel;
|
| - controller = new LiveTestController(suite, this, () {
|
| - controller.setState(const State(Status.running, Result.success));
|
| -
|
| - testChannel = _channel.virtualChannel();
|
| - _channel.sink.add({
|
| - 'command': 'run',
|
| - 'channel': testChannel.id
|
| - });
|
| -
|
| - testChannel.stream.listen((message) {
|
| - if (message['type'] == 'error') {
|
| - var asyncError = RemoteException.deserialize(message['error']);
|
| -
|
| - var stackTrace = asyncError.stackTrace;
|
| - if (_mapper != null) stackTrace = _mapper.mapStackTrace(stackTrace);
|
| -
|
| - controller.addError(asyncError.error, stackTrace);
|
| - } else if (message['type'] == 'state-change') {
|
| - controller.setState(
|
| - new State(
|
| - new Status.parse(message['status']),
|
| - new Result.parse(message['result'])));
|
| - } else if (message['type'] == 'print') {
|
| - controller.print(message['line']);
|
| - } else {
|
| - assert(message['type'] == 'complete');
|
| - controller.completer.complete();
|
| - }
|
| - }, onDone: () {
|
| - // When the test channel closes—presumably becuase the browser
|
| - // closed—mark the test as complete no matter what.
|
| - if (controller.completer.isCompleted) return;
|
| - controller.completer.complete();
|
| - });
|
| - }, () {
|
| - // If the test has finished running, just disconnect the channel.
|
| - if (controller.completer.isCompleted) {
|
| - testChannel.sink.close();
|
| - return;
|
| - }
|
| -
|
| - invoke(() async {
|
| - // If the test is still running, send it a message telling it to shut
|
| - // down ASAP. This causes the [Invoker] to eagerly throw exceptions
|
| - // whenever the test touches it.
|
| - testChannel.sink.add({'command': 'close'});
|
| - await controller.completer.future;
|
| - testChannel.sink.close();
|
| - });
|
| - }, groups: groups);
|
| - return controller.liveTest;
|
| - }
|
| -
|
| - Test forPlatform(TestPlatform platform, {OperatingSystem os}) {
|
| - if (!metadata.testOn.evaluate(platform, os: os)) return null;
|
| - return new IframeTest(
|
| - name, metadata.forPlatform(platform, os: os), _channel,
|
| - mapper: _mapper);
|
| - }
|
| -}
|
|
|