1515// specific language governing permissions and limitations
1616// under the License.
1717
18- use crate :: chrome:: ChromeManager ;
19- use crate :: edge:: EdgeManager ;
18+ use crate :: chrome:: { ChromeManager , CHROMEDRIVER_NAME , CHROME_NAMES } ;
19+ use crate :: edge:: { EdgeManager , EDGEDRIVER_NAME , EDGE_NAME } ;
2020use crate :: files:: compose_cache_folder;
21- use crate :: firefox:: FirefoxManager ;
22- use crate :: iexplorer:: IExplorerManager ;
23- use crate :: safari:: { SafariManager , SAFARI } ;
21+ use crate :: firefox:: { FirefoxManager , FIREFOX_NAME , GECKODRIVER_NAME } ;
22+ use crate :: iexplorer:: { IExplorerManager , IEDRIVER_NAME , IE_NAME } ;
23+ use crate :: safari:: { SafariManager , SAFARIDRIVER_NAME , SAFARI_NAME } ;
2424use std:: fs;
2525
2626use crate :: config:: OS :: WINDOWS ;
@@ -38,7 +38,7 @@ use crate::logger::Logger;
3838use crate :: metadata:: {
3939 create_browser_metadata, get_browser_version_from_metadata, get_metadata, write_metadata,
4040} ;
41- use crate :: safaritp:: SafariTPManager ;
41+ use crate :: safaritp:: { SafariTPManager , SAFARITP_NAME } ;
4242
4343pub mod chrome;
4444pub mod config;
@@ -257,7 +257,7 @@ pub trait SeleniumManager {
257257 }
258258
259259 fn is_safari ( & self ) -> bool {
260- self . get_browser_name ( ) . contains ( SAFARI )
260+ self . get_browser_name ( ) . contains ( SAFARI_NAME [ 0 ] )
261261 }
262262
263263 fn is_browser_version_unstable ( & self ) -> bool {
@@ -435,48 +435,33 @@ pub trait SeleniumManager {
435435
436436pub fn get_manager_by_browser ( browser_name : String ) -> Result < Box < dyn SeleniumManager > , String > {
437437 let browser_name_lower_case = browser_name. to_ascii_lowercase ( ) ;
438- if browser_name_lower_case. eq ( "chrome" ) {
438+ if CHROME_NAMES . contains ( & browser_name_lower_case. as_str ( ) ) {
439439 Ok ( ChromeManager :: new ( ) )
440- } else if browser_name . eq ( "firefox" ) {
440+ } else if FIREFOX_NAME . contains ( & browser_name_lower_case . as_str ( ) ) {
441441 Ok ( FirefoxManager :: new ( ) )
442- } else if vec ! [ "edge" , "msedge" , "microsoftedge" ] . contains ( & browser_name_lower_case. as_str ( ) ) {
442+ } else if EDGE_NAME . contains ( & browser_name_lower_case. as_str ( ) ) {
443443 Ok ( EdgeManager :: new ( ) )
444- } else if vec ! [
445- "iexplorer" ,
446- "ie" ,
447- "internetexplorer" ,
448- "internet-explorer" ,
449- "internet_explorer" ,
450- ]
451- . contains ( & browser_name_lower_case. as_str ( ) )
452- {
444+ } else if IE_NAME . contains ( & browser_name_lower_case. as_str ( ) ) {
453445 Ok ( IExplorerManager :: new ( ) )
454- } else if browser_name . eq ( "safari" ) {
446+ } else if SAFARI_NAME . contains ( & browser_name_lower_case . as_str ( ) ) {
455447 Ok ( SafariManager :: new ( ) )
456- } else if vec ! [
457- "safari technology preview" ,
458- r#"safari\ technology\ preview"# ,
459- "safaritechnologypreview" ,
460- "safaritp" ,
461- ]
462- . contains ( & browser_name_lower_case. as_str ( ) )
463- {
448+ } else if SAFARITP_NAME . contains ( & browser_name_lower_case. as_str ( ) ) {
464449 Ok ( SafariTPManager :: new ( ) )
465450 } else {
466451 Err ( format ! ( "Invalid browser name: {browser_name}" ) )
467452 }
468453}
469454
470455pub fn get_manager_by_driver ( driver_name : String ) -> Result < Box < dyn SeleniumManager > , String > {
471- if driver_name. eq_ignore_ascii_case ( "chromedriver" ) {
456+ if driver_name. eq_ignore_ascii_case ( CHROMEDRIVER_NAME ) {
472457 Ok ( ChromeManager :: new ( ) )
473- } else if driver_name. eq_ignore_ascii_case ( "geckodriver" ) {
458+ } else if driver_name. eq_ignore_ascii_case ( GECKODRIVER_NAME ) {
474459 Ok ( FirefoxManager :: new ( ) )
475- } else if driver_name. eq_ignore_ascii_case ( "msedgedriver" ) {
460+ } else if driver_name. eq_ignore_ascii_case ( EDGEDRIVER_NAME ) {
476461 Ok ( EdgeManager :: new ( ) )
477- } else if driver_name. eq_ignore_ascii_case ( "iedriverserver" ) {
462+ } else if driver_name. eq_ignore_ascii_case ( IEDRIVER_NAME ) {
478463 Ok ( IExplorerManager :: new ( ) )
479- } else if driver_name. eq_ignore_ascii_case ( "safaridriver" ) {
464+ } else if driver_name. eq_ignore_ascii_case ( SAFARIDRIVER_NAME ) {
480465 Ok ( SafariManager :: new ( ) )
481466 } else {
482467 Err ( format ! ( "Invalid driver name: {driver_name}" ) )
0 commit comments