| Index: lib/src/runner/browser/browser_manager.dart
|
| diff --git a/lib/src/runner/browser/browser_manager.dart b/lib/src/runner/browser/browser_manager.dart
|
| index 7498efad5b352f9564f2abeb180637fcce176820..15cd745737bace29c912210a48ffa64b54bebe58 100644
|
| --- a/lib/src/runner/browser/browser_manager.dart
|
| +++ b/lib/src/runner/browser/browser_manager.dart
|
| @@ -11,7 +11,9 @@ import 'package:async/async.dart';
|
| import 'package:http_parser/http_parser.dart';
|
| import 'package:pool/pool.dart';
|
|
|
| +import '../../backend/group.dart';
|
| import '../../backend/metadata.dart';
|
| +import '../../backend/suite_entry.dart';
|
| import '../../backend/test_platform.dart';
|
| import '../../util/cancelable_future.dart';
|
| import '../../util/multi_channel.dart';
|
| @@ -241,15 +243,33 @@ class BrowserManager {
|
| asyncError.stackTrace);
|
| }
|
|
|
| - return new RunnerSuite(await _environment, response["tests"].map((test) {
|
| - var testMetadata = new Metadata.deserialize(test['metadata']);
|
| - var testChannel = suiteChannel.virtualChannel(test['channel']);
|
| - return new IframeTest(test['name'], testMetadata, testChannel,
|
| - mapper: mapper);
|
| - }), platform: _platform, metadata: metadata, path: path,
|
| + return new RunnerSuite(
|
| + await _environment,
|
| + _deserializeEntries(suiteChannel, mapper, response["entries"]),
|
| + platform: _platform,
|
| + metadata: metadata,
|
| + path: path,
|
| onClose: () => closeIframe());
|
| }
|
|
|
| + /// Deserializes [entries] into concrete [SuiteEntry] subclasses.
|
| + Iterable<SuiteEntry> _deserializeEntries(MultiChannel suiteChannel,
|
| + Mapper mapper, List<Map> entries) {
|
| + return entries.map((entry) {
|
| + var metadata = new Metadata.deserialize(entry['metadata']);
|
| + if (entry['type'] == 'group') {
|
| + return new Group(
|
| + entry['name'],
|
| + metadata,
|
| + _deserializeEntries(suiteChannel, mapper, entry['entries']));
|
| + } else {
|
| + var testChannel = suiteChannel.virtualChannel(entry['channel']);
|
| + return new IframeTest(entry['name'], metadata, testChannel,
|
| + mapper: mapper);
|
| + }
|
| + });
|
| + }
|
| +
|
| /// An implementation of [Environment.displayPause].
|
| CancelableFuture _displayPause() {
|
| if (_pauseCompleter != null) return _pauseCompleter.future;
|
|
|