| // Copyright (c) 2017, 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 'package:test_core/src/util/stack_trace_mapper.dart'; // ignore: implementation_imports |
| import 'package:test_core/src/runner/plugin/remote_platform_helpers.dart'; // ignore: implementation_imports |
| |
| import '../runner/browser/post_message_channel.dart'; |
| |
| /// Bootstraps a browser test to communicate with the test runner. |
| void internalBootstrapBrowserTest(Function Function() getMain, |
| {StreamChannel<Object?>? testChannel}) { |
| var channel = |
| serializeSuite(getMain, hidePrints: false, beforeLoad: () async { |
| var serialized = |
| await suiteChannel('test.browser.mapper').stream.first as Map?; |
| if (serialized == null) return; |
| setStackTraceMapper(JSStackTraceMapper.deserialize(serialized)!); |
| }); |
| (testChannel ?? postMessageChannel()).pipe(channel); |
| } |