@@ -34,11 +34,18 @@ namespace Microsoft.Playwright.TestAdapter;
3434public class PlaywrightSettingsProvider : ISettingsProvider
3535{
3636 private static PlaywrightSettingsXml ? _settings = null ! ;
37+ private static PlaywrightSettings ? _playwrightSettings ;
3738
3839 public static string BrowserName
3940 {
4041 get
4142 {
43+ if ( _playwrightSettings != null )
44+ {
45+ var browser = _playwrightSettings . Browser . ToString ( ) . ToLowerInvariant ( ) ;
46+ ValidateBrowserName ( browser , "PlaywrightSettings.Browser property" , string . Empty ) ;
47+ return browser ;
48+ }
4249 var browserFromEnv = Environment . GetEnvironmentVariable ( "BROWSER" ) ? . ToLowerInvariant ( ) ;
4350 // GitHub Codespaces sets the BROWSER environment variable, ignore it if its bogus.
4451 var ignoreValueFromEnv = Environment . GetEnvironmentVariable ( "CODESPACES" ) == "true" && browserFromEnv ! . StartsWith ( "/vscode/" ) ;
@@ -61,23 +68,16 @@ public static float? ExpectTimeout
6168 {
6269 get
6370 {
64- if ( _settings == null )
65- {
66- return null ;
67- }
68- if ( _settings . ExpectTimeout . HasValue )
69- {
70- return _settings . ExpectTimeout . Value ;
71- }
72- return null ;
71+ var expectTimeout = _playwrightSettings ? . ExpectTimeout ? . TotalMilliseconds ;
72+ return expectTimeout . HasValue ? Convert . ToSingle ( expectTimeout . Value ) : _settings ? . ExpectTimeout ;
7373 }
7474 }
7575
7676 public static BrowserTypeLaunchOptions LaunchOptions
7777 {
7878 get
7979 {
80- var launchOptions = _settings ? . LaunchOptions ?? new BrowserTypeLaunchOptions ( ) ;
80+ var launchOptions = _playwrightSettings ? . LaunchOptions ?? _settings ? . LaunchOptions ?? new BrowserTypeLaunchOptions ( ) ;
8181 if ( Environment . GetEnvironmentVariable ( "HEADED" ) == "1" )
8282 {
8383 launchOptions . Headless = false ;
@@ -104,4 +104,7 @@ private static void ValidateBrowserName(string browserName, string fromText, str
104104
105105 public void Load ( XmlReader reader )
106106 => _settings = new PlaywrightSettingsXml ( reader ) ;
107+
108+ public static void Load ( PlaywrightSettings settings )
109+ => _playwrightSettings = settings ;
107110}
0 commit comments