1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#[cfg(all(unix, not(target_os = "macos")))]
mod common;
#[cfg(all(unix, not(target_os = "macos")))]
mod tests {
const TEST_PLATFORM: &str = "unix";
use super::common::*;
use serial_test::serial;
use webbrowser::Browser;
/*#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
#[serial]
async fn test_open_default() {
check_browser(Browser::Default, TEST_PLATFORM).await;
}*/
#[test]
fn test_existence_default() {
assert!(Browser::is_available(), "should have found a browser");
}
#[test]
fn test_non_existence_safari() {
assert!(!Browser::Safari.exists(), "should not have found Safari");
}
/*#[cfg(not(feature = "hardened"))]
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
#[serial]
async fn test_local_file_abs_path() {
check_local_file(Browser::Default, None, |pb| {
pb.as_os_str().to_string_lossy().into()
})
.await;
}
#[cfg(not(feature = "hardened"))]
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
#[serial]
async fn test_local_file_rel_path() {
let cwd = std::env::current_dir().expect("unable to get current dir");
check_local_file(Browser::Default, None, |pb| {
pb.strip_prefix(cwd)
.expect("strip prefix failed")
.as_os_str()
.to_string_lossy()
.into()
})
.await;
}
#[cfg(not(feature = "hardened"))]
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
#[serial]
async fn test_local_file_uri() {
check_local_file(Browser::Default, None, |pb| {
url::Url::from_file_path(pb)
.expect("failed to convert path to url")
.to_string()
})
.await;
}*/
#[cfg(feature = "hardened")]
#[test]
fn test_hardened_mode() {
let err = webbrowser::open("file:///etc/passwd")
.expect_err("expected non-http url to fail in hardened mode");
assert_eq!(err.kind(), std::io::ErrorKind::InvalidInput);
}
}
|