// Copyright (c) 2022, 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 'dart:io'; import 'package:expect/expect.dart'; import 'package:smith/smith.dart'; import 'package:test_runner/src/browser_controller.dart'; import 'package:test_runner/src/service/web_driver_service.dart'; void main() async { final chromePath = Platform.environment['CHROME_PATH']; if (chromePath != null) { print('Testing Chrome'); await testChrome(chromePath); } final firefoxPath = Platform.environment['FIREFOX_PATH']; if (firefoxPath != null) { print('Testing Firefox'); await testFirefox(firefoxPath); } if (Platform.isMacOS) { print('Testing Safari'); await testSafari(); } } Future testChrome(String path) { return testBrowser(Chrome(path)); } Future testFirefox(String path) { return testBrowser(Firefox(path)); } Future testSafari() async { var service = await WebDriverService.startServiceForRuntime(Runtime.safari); await testBrowser(Safari(service.port)); service.allDone(); } Future testBrowser(Browser browser) async { browser.debugPrint = true; await browser.version; await testStartStop(browser); } Future testStartStop(Browser browser) async { var closed = false; try { Expect.isTrue(await browser.start('about:blank')); } finally { closed = await browser.close(); } Expect.isTrue(closed); }