From 94f0f5ccaef58c700909c277bb9616ce9af701eb Mon Sep 17 00:00:00 2001 From: delta456 <swstkbaranwal@gmail.com> Date: Tue, 17 Sep 2024 15:36:58 +0530 Subject: [PATCH 1/3] selenium manager: check invalid browser version --- rust/src/lib.rs | 6 +++++- rust/tests/browser_tests.rs | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/rust/src/lib.rs b/rust/src/lib.rs index ae050adc125c8..0878daf898ae1 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -487,7 +487,11 @@ pub trait SeleniumManager { discovered_major_browser_version, major_browser_version, )); - download_browser = true; + self.set_fallback_driver_from_cache(false); + return Err(anyhow!(format!( + "Invalid version {} provided", + major_browser_version + ))); } else { self.set_browser_version(discovered_version); } diff --git a/rust/tests/browser_tests.rs b/rust/tests/browser_tests.rs index 10fd138491029..e1dd2d83230dc 100644 --- a/rust/tests/browser_tests.rs +++ b/rust/tests/browser_tests.rs @@ -160,3 +160,12 @@ fn invalid_browser_path_test() { .code(DATAERR) .failure(); } + +#[test] +fn invalid_browser_version_test() { + let mut cmd = get_selenium_manager(); + cmd.args(["--browser", "chrome", "--browser-version", "bad-version"]) + .assert() + .code(DATAERR) + .failure(); +} From e725eebaa5591f2ffa733a8e7a154731fddbda81 Mon Sep 17 00:00:00 2001 From: delta456 <swstkbaranwal@gmail.com> Date: Fri, 20 Sep 2024 13:52:57 +0530 Subject: [PATCH 2/3] add more checks --- rust/src/lib.rs | 19 ++++++++++++++----- rust/tests/browser_tests.rs | 9 +++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 0878daf898ae1..a4b2e8d07230b 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -487,11 +487,20 @@ pub trait SeleniumManager { discovered_major_browser_version, major_browser_version, )); - self.set_fallback_driver_from_cache(false); - return Err(anyhow!(format!( - "Invalid version {} provided", - major_browser_version - ))); + if self + .request_fixed_browser_version_from_online( + major_browser_version.as_str(), + ) + .is_err() + { + self.set_fallback_driver_from_cache(false); + return Err(anyhow!(format!( + "Invalid {} version provided: {}", + self.get_browser_name(), + major_browser_version + ))); + } + download_browser = true; } else { self.set_browser_version(discovered_version); } diff --git a/rust/tests/browser_tests.rs b/rust/tests/browser_tests.rs index e1dd2d83230dc..9140f23900b2e 100644 --- a/rust/tests/browser_tests.rs +++ b/rust/tests/browser_tests.rs @@ -169,3 +169,12 @@ fn invalid_browser_version_test() { .code(DATAERR) .failure(); } + +#[test] +fn valid_browser_version_pass_test() { + let mut cmd = get_selenium_manager(); + cmd.args(["--browser", "chrome", "--browser-version", "127"]) + .assert() + .code(0) + .success(); +} From 51d082a73781a121b0342d0a6d526bd7c1b93260 Mon Sep 17 00:00:00 2001 From: delta456 <swstkbaranwal@gmail.com> Date: Tue, 1 Oct 2024 00:38:25 +0530 Subject: [PATCH 3/3] apply suggestions from reviewer --- rust/src/lib.rs | 18 ++++-------------- rust/tests/browser_tests.rs | 18 ------------------ 2 files changed, 4 insertions(+), 32 deletions(-) diff --git a/rust/src/lib.rs b/rust/src/lib.rs index a4b2e8d07230b..751f092029e6d 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -487,19 +487,6 @@ pub trait SeleniumManager { discovered_major_browser_version, major_browser_version, )); - if self - .request_fixed_browser_version_from_online( - major_browser_version.as_str(), - ) - .is_err() - { - self.set_fallback_driver_from_cache(false); - return Err(anyhow!(format!( - "Invalid {} version provided: {}", - self.get_browser_name(), - major_browser_version - ))); - } download_browser = true; } else { self.set_browser_version(discovered_version); @@ -763,7 +750,10 @@ pub trait SeleniumManager { // Download browser if necessary match self.download_browser_if_necessary(&original_browser_version) { Ok(_) => {} - Err(err) => self.check_error_with_driver_in_path(&use_driver_in_path, err)?, + Err(err) => { + self.set_fallback_driver_from_cache(false); + self.check_error_with_driver_in_path(&use_driver_in_path, err)? + } } // With the discovered browser version, discover the proper driver version using online endpoints diff --git a/rust/tests/browser_tests.rs b/rust/tests/browser_tests.rs index 9140f23900b2e..10fd138491029 100644 --- a/rust/tests/browser_tests.rs +++ b/rust/tests/browser_tests.rs @@ -160,21 +160,3 @@ fn invalid_browser_path_test() { .code(DATAERR) .failure(); } - -#[test] -fn invalid_browser_version_test() { - let mut cmd = get_selenium_manager(); - cmd.args(["--browser", "chrome", "--browser-version", "bad-version"]) - .assert() - .code(DATAERR) - .failure(); -} - -#[test] -fn valid_browser_version_pass_test() { - let mut cmd = get_selenium_manager(); - cmd.args(["--browser", "chrome", "--browser-version", "127"]) - .assert() - .code(0) - .success(); -}