From 6fc08b571695c07865ba2f223ca8a4a4c7f787b0 Mon Sep 17 00:00:00 2001 From: Yaroslav Vorobev Date: Fri, 23 Jun 2023 17:03:28 +0300 Subject: [PATCH 1/5] feat(runner): add env overrides for safari and ff adds `SAFARI_EXECUTABLE` and `FIREFOX_EXECUTABLE` this allows you to use FF Developer Edition and Safari Technology Preview --- pkgs/test/lib/src/runner/browser/default_settings.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/test/lib/src/runner/browser/default_settings.dart b/pkgs/test/lib/src/runner/browser/default_settings.dart index 5f174b2f1..4876fd9b9 100644 --- a/pkgs/test/lib/src/runner/browser/default_settings.dart +++ b/pkgs/test/lib/src/runner/browser/default_settings.dart @@ -25,9 +25,11 @@ final defaultSettings = UnmodifiableMapView({ Runtime.firefox: ExecutableSettings( linuxExecutable: 'firefox', macOSExecutable: '/Applications/Firefox.app/Contents/MacOS/firefox-bin', - windowsExecutable: r'Mozilla Firefox\firefox.exe'), + windowsExecutable: r'Mozilla Firefox\firefox.exe', + environmentOverride: 'FIREFOX_EXECUTABLE'), Runtime.internetExplorer: ExecutableSettings(windowsExecutable: r'Internet Explorer\iexplore.exe'), Runtime.safari: ExecutableSettings( - macOSExecutable: '/Applications/Safari.app/Contents/MacOS/Safari'), + macOSExecutable: '/Applications/Safari.app/Contents/MacOS/Safari', + environmentOverride: 'SAFARI_EXECUTABLE'), }); From 3052ea3d256c30e89fb63b12e8199c64a9d26f31 Mon Sep 17 00:00:00 2001 From: Yaroslav Vorobev Date: Fri, 23 Jun 2023 17:08:59 +0300 Subject: [PATCH 2/5] test: add safari env override path test --- pkgs/test/test/runner/browser/safari_test.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/test/test/runner/browser/safari_test.dart b/pkgs/test/test/runner/browser/safari_test.dart index 16806de69..d37db95e8 100644 --- a/pkgs/test/test/runner/browser/safari_test.dart +++ b/pkgs/test/test/runner/browser/safari_test.dart @@ -81,4 +81,18 @@ void main() { expect(test.stdout, emitsThrough(contains('-1: Some tests failed.'))); await test.shouldExit(1); }); + + test('can override safari location with SAFARI_EXECUTABLE var', () async { + await d.file('test.dart', ''' +import 'package:test/test.dart'; + +void main() { + test("success", () {}); +} +''').create(); + var test = await runTest(['-p', 'safari', 'test.dart'], + environment: {'SAFARI_EXECUTABLE': '/some/bad/path'}); + expect(test.stdout, emitsThrough(contains('Failed to run Safari:'))); + await test.shouldExit(1); + }); } From 85043f8338a32929d9e9c19ce10113c5c42ee895 Mon Sep 17 00:00:00 2001 From: Yaroslav Vorobev Date: Fri, 23 Jun 2023 17:09:07 +0300 Subject: [PATCH 3/5] test: add firefox env override path test --- pkgs/test/test/runner/browser/firefox_test.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/test/test/runner/browser/firefox_test.dart b/pkgs/test/test/runner/browser/firefox_test.dart index 20c55ab74..7aa007476 100644 --- a/pkgs/test/test/runner/browser/firefox_test.dart +++ b/pkgs/test/test/runner/browser/firefox_test.dart @@ -81,6 +81,20 @@ void main() { await test.shouldExit(1); }); + test('can override firefox location with FIREFOX_EXECUTABLE var', () async { + await d.file('test.dart', ''' +import 'package:test/test.dart'; + +void main() { + test("success", () {}); +} +''').create(); + var test = await runTest(['-p', 'firefox', 'test.dart'], + environment: {'FIREFOX_EXECUTABLE': '/some/bad/path'}); + expect(test.stdout, emitsThrough(contains('Failed to run Firefox:'))); + await test.shouldExit(1); + }); + test('not impacted by CHROME_EXECUTABLE var', () async { await d.file('test.dart', ''' import 'dart:html'; From 807f994449bf178528f11dde7e4fc6626fa54255 Mon Sep 17 00:00:00 2001 From: Yaroslav Vorobev Date: Fri, 23 Jun 2023 17:09:23 +0300 Subject: [PATCH 4/5] test: add missing edge env override path test --- .../test/runner/browser/microsoft_edge_test.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/test/test/runner/browser/microsoft_edge_test.dart b/pkgs/test/test/runner/browser/microsoft_edge_test.dart index e06ffbd57..2d3e4cf08 100644 --- a/pkgs/test/test/runner/browser/microsoft_edge_test.dart +++ b/pkgs/test/test/runner/browser/microsoft_edge_test.dart @@ -74,4 +74,18 @@ void main() { expect(test.stdout, emitsThrough(contains('-1: Some tests failed.'))); await test.shouldExit(1); }); + + test('can override edge location with MS_EDGE_EXECUTABLE var', () async { + await d.file('test.dart', ''' +import 'package:test/test.dart'; + +void main() { + test("success", () {}); +} +''').create(); + var test = await runTest(['-p', 'edge', 'test.dart'], + environment: {'MS_EDGE_EXECUTABLE': '/some/bad/path'}); + expect(test.stdout, emitsThrough(contains('Failed to run Edge:'))); + await test.shouldExit(1); + }); } From b03194c4ce1624c0d2291424e08961fb48a74fac Mon Sep 17 00:00:00 2001 From: Yaroslav Vorobev Date: Wed, 28 Jun 2023 18:09:37 +0300 Subject: [PATCH 5/5] chore(test): run formatter and update changelog --- pkgs/test/CHANGELOG.md | 2 ++ pkgs/test/lib/src/runner/browser/default_settings.dart | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/test/CHANGELOG.md b/pkgs/test/CHANGELOG.md index 6ab538aef..1117e8cf0 100644 --- a/pkgs/test/CHANGELOG.md +++ b/pkgs/test/CHANGELOG.md @@ -5,6 +5,8 @@ `TestOn`, `Timeout`. * Fix the `root_` fields in the JSON reporter when running a test on Windows with an absolute path. +* Add support for `SAFARI_EXECUTABLE`, `FIREFOX_EXECUTABLE` and + `MS_EDGE_EXECUTABLE` for custom browser installations. ## 1.24.3 diff --git a/pkgs/test/lib/src/runner/browser/default_settings.dart b/pkgs/test/lib/src/runner/browser/default_settings.dart index 4876fd9b9..929d77736 100644 --- a/pkgs/test/lib/src/runner/browser/default_settings.dart +++ b/pkgs/test/lib/src/runner/browser/default_settings.dart @@ -30,6 +30,6 @@ final defaultSettings = UnmodifiableMapView({ Runtime.internetExplorer: ExecutableSettings(windowsExecutable: r'Internet Explorer\iexplore.exe'), Runtime.safari: ExecutableSettings( - macOSExecutable: '/Applications/Safari.app/Contents/MacOS/Safari', - environmentOverride: 'SAFARI_EXECUTABLE'), + macOSExecutable: '/Applications/Safari.app/Contents/MacOS/Safari', + environmentOverride: 'SAFARI_EXECUTABLE'), });