Chromium Code Reviews| 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 bbba2148b7eabded8a5debc74e1f918bc8c3fc85..46a48717556fd6304e223aaea6a88892fda6c9ff 100644 |
| --- a/lib/src/runner/browser/browser_manager.dart |
| +++ b/lib/src/runner/browser/browser_manager.dart |
| @@ -16,6 +16,7 @@ import '../../util/multi_channel.dart'; |
| import '../../util/remote_exception.dart'; |
| import '../../util/stack_trace_mapper.dart'; |
| import '../../utils.dart'; |
| +import '../environment.dart'; |
| import '../load_exception.dart'; |
| import '../runner_suite.dart'; |
| import 'iframe_test.dart'; |
| @@ -51,12 +52,16 @@ class BrowserManager { |
| /// Whether the channel to the browser has closed. |
| bool _closed = false; |
| + /// The environment to attach to each suite. |
| + _BrowserEnvironment _environment; |
| + |
| /// Creates a new BrowserManager that communicates with [browser] over |
| /// [webSocket]. |
| BrowserManager(this.browser, CompatibleWebSocket webSocket) |
| : _channel = new MultiChannel( |
| webSocket.map(JSON.decode), |
| mapSink(webSocket, JSON.encode)) { |
| + _environment = new _BrowserEnvironment(this); |
| _channel.stream.listen(null, onDone: () => _closed = true); |
| } |
| @@ -140,7 +145,7 @@ class BrowserManager { |
| asyncError.stackTrace); |
| } |
| - return new RunnerSuite(response["tests"].map((test) { |
| + return new RunnerSuite(_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, |
| @@ -149,3 +154,12 @@ class BrowserManager { |
| onClose: () => closeIframe()); |
| } |
| } |
| + |
| +/// An implementation of [Environment] for the browser. |
| +/// |
| +/// All methods forward directly to [BrowserManager]. |
| +class _BrowserEnvironment implements Environment { |
| + final BrowserManager _manager; |
|
kevmoo
2015/07/30 01:37:24
This field ends up being unused.
Uh...
nweiz
2015/07/30 19:41:50
Right, the whole point of this CL is to set the st
|
| + |
| + _BrowserEnvironment(this._manager); |
| +} |