1212class ConfigSanitizerUtil
1313{
1414 /**
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 .
1616 * @param array $config
17+ * @param String[] $params
1718 * @return array
1819 */
19- public static function sanitizeWebDriverConfig ($ config )
20+ public static function sanitizeWebDriverConfig ($ config, $ params = [ ' url ' , ' selenium ' ] )
2021 {
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+
2332 return $ config ;
2433 }
2534
@@ -45,12 +54,37 @@ private static function sanitizeSeleniumEnvs($config)
4554 return $ config ;
4655 }
4756
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+
4882 /**
4983 * Sanitizes and returns given URL.
5084 * @param string $url
5185 * @return string
5286 */
53- public static function sanitizeUrl ($ url )
87+ private static function sanitizeUrl ($ url )
5488 {
5589 if ($ url === "" ) {
5690 trigger_error ("MAGENTO_BASE_URL must be defined in .env " , E_USER_ERROR );
0 commit comments