12
12
class ConfigSanitizerUtil
13
13
{
14
14
/**
15
- * Sanitizes the given Webdriver Config's url and selenium env params.
15
+ * Sanitizes the given Webdriver Config's url and selenium env params, can be selective based on second argument .
16
16
* @param array $config
17
+ * @param String[] $params
17
18
* @return array
18
19
*/
19
- public static function sanitizeWebDriverConfig ($ config )
20
+ public static function sanitizeWebDriverConfig ($ config, $ params = [ ' url ' , ' selenium ' ] )
20
21
{
21
- $ config ['url ' ] = self ::sanitizeUrl ($ config ['url ' ]);
22
- $ config = self ::sanitizeSeleniumEnvs ($ config );
22
+ self ::validateConfigBasedVars ($ config );
23
+
24
+ if (array_key_exists ('url ' , array_flip ($ params ))) {
25
+ $ config ['url ' ] = self ::sanitizeUrl ($ config ['url ' ]);
26
+ }
27
+
28
+ if (array_key_exists ('selenium ' , array_flip ($ params ))) {
29
+ $ config = self ::sanitizeSeleniumEnvs ($ config );
30
+ }
31
+
23
32
return $ config ;
24
33
}
25
34
@@ -45,12 +54,37 @@ private static function sanitizeSeleniumEnvs($config)
45
54
return $ config ;
46
55
}
47
56
57
+ /**
58
+ * Method which validates env vars have been properly read into the config. Method implemented as part of
59
+ * bug MQE-567
60
+ *
61
+ * @param array $config
62
+ * @return void
63
+ */
64
+ private static function validateConfigBasedVars ($ config )
65
+ {
66
+ $ configStrings = array_filter ($ config , function ($ value ) {
67
+ return is_string ($ value );
68
+ });
69
+
70
+ foreach ($ configStrings as $ configKey => $ configValue ) {
71
+ $ var = trim ((String )$ configValue , '% ' );
72
+ if (array_key_exists ($ var , $ _ENV )) {
73
+ trigger_error (
74
+ "Issue with setting configuration for test runs. Please make sure ' {$ var }' is "
75
+ . "not duplicated as a system level variable " ,
76
+ E_USER_ERROR
77
+ );
78
+ }
79
+ }
80
+ }
81
+
48
82
/**
49
83
* Sanitizes and returns given URL.
50
84
* @param string $url
51
85
* @return string
52
86
*/
53
- public static function sanitizeUrl ($ url )
87
+ private static function sanitizeUrl ($ url )
54
88
{
55
89
if ($ url === "" ) {
56
90
trigger_error ("MAGENTO_BASE_URL must be defined in .env " , E_USER_ERROR );
0 commit comments