@@ -34,11 +34,18 @@ namespace Microsoft.Playwright.TestAdapter;
34
34
public class PlaywrightSettingsProvider : ISettingsProvider
35
35
{
36
36
private static PlaywrightSettingsXml ? _settings = null ! ;
37
+ private static PlaywrightSettings ? _playwrightSettings ;
37
38
38
39
public static string BrowserName
39
40
{
40
41
get
41
42
{
43
+ if ( _playwrightSettings != null )
44
+ {
45
+ var browser = _playwrightSettings . Browser . ToString ( ) . ToLowerInvariant ( ) ;
46
+ ValidateBrowserName ( browser , "PlaywrightSettings.Browser property" , string . Empty ) ;
47
+ return browser ;
48
+ }
42
49
var browserFromEnv = Environment . GetEnvironmentVariable ( "BROWSER" ) ? . ToLowerInvariant ( ) ;
43
50
// GitHub Codespaces sets the BROWSER environment variable, ignore it if its bogus.
44
51
var ignoreValueFromEnv = Environment . GetEnvironmentVariable ( "CODESPACES" ) == "true" && browserFromEnv ! . StartsWith ( "/vscode/" ) ;
@@ -61,23 +68,16 @@ public static float? ExpectTimeout
61
68
{
62
69
get
63
70
{
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 ;
73
73
}
74
74
}
75
75
76
76
public static BrowserTypeLaunchOptions LaunchOptions
77
77
{
78
78
get
79
79
{
80
- var launchOptions = _settings ? . LaunchOptions ?? new BrowserTypeLaunchOptions ( ) ;
80
+ var launchOptions = _playwrightSettings ? . LaunchOptions ?? _settings ? . LaunchOptions ?? new BrowserTypeLaunchOptions ( ) ;
81
81
if ( Environment . GetEnvironmentVariable ( "HEADED" ) == "1" )
82
82
{
83
83
launchOptions . Headless = false ;
@@ -104,4 +104,7 @@ private static void ValidateBrowserName(string browserName, string fromText, str
104
104
105
105
public void Load ( XmlReader reader )
106
106
=> _settings = new PlaywrightSettingsXml ( reader ) ;
107
+
108
+ public static void Load ( PlaywrightSettings settings )
109
+ => _playwrightSettings = settings ;
107
110
}
0 commit comments