diff --git a/src/html.rs b/src/html.rs index 40eb35d..a1524e2 100644 --- a/src/html.rs +++ b/src/html.rs @@ -826,6 +826,7 @@ pub fn walk_and_embed_assets( set_node_attr(node, "href", None); } } + if let Some(image_attr_xlink_href_value) = get_node_attr(node, "xlink:href") { image_href = image_attr_xlink_href_value; if options.no_images { diff --git a/src/tests/cli/base_url.rs b/src/tests/cli/base_url.rs index 7ba88d9..9b07bf7 100644 --- a/src/tests/cli/base_url.rs +++ b/src/tests/cli/base_url.rs @@ -12,8 +12,8 @@ mod passing { use std::process::Command; #[test] - fn add_new_when_provided() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn add_new_when_provided() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-b") @@ -35,13 +35,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn keep_existing_when_none_provided() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn keep_existing_when_none_provided() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("data:text/html,Hello%2C%20World!") @@ -61,13 +59,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn override_existing_when_provided() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn override_existing_when_provided() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-b") @@ -89,13 +85,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn remove_existing_when_empty_provided() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn remove_existing_when_empty_provided() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-b") @@ -117,7 +111,5 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } } diff --git a/src/tests/cli/basic.rs b/src/tests/cli/basic.rs index 0e0d5d6..063aa53 100644 --- a/src/tests/cli/basic.rs +++ b/src/tests/cli/basic.rs @@ -15,8 +15,8 @@ mod passing { use url::Url; #[test] - fn print_version() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn print_version() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd.arg("-V").output().unwrap(); // STDOUT should contain program name and version @@ -30,12 +30,10 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn stdin_target_input() -> Result<(), Box> { + fn stdin_target_input() { let mut echo = Command::new("echo") .arg("Hello from STDIN") .stdout(Stdio::piped()) @@ -44,22 +42,20 @@ mod passing { let echo_out = echo.stdout.take().unwrap(); echo.wait().unwrap(); - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); cmd.stdin(echo_out); let out = cmd.arg("-M").arg("-").output().unwrap(); - // STDOUT should contain HTML from STDIN + // STDOUT should contain HTML created out of STDIN assert_eq!( std::str::from_utf8(&out.stdout).unwrap(), "Hello from STDIN\n\n" ); - - Ok(()) } #[test] - fn css_import_string() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn css_import_string() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/css/index.html"); let path_css: &Path = Path::new("src/tests/data/css/style.css"); @@ -95,8 +91,6 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } } @@ -114,8 +108,8 @@ mod failing { use std::process::Command; #[test] - fn bad_input_empty_target() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn bad_input_empty_target() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd.arg("").output().unwrap(); // STDOUT should be empty @@ -129,7 +123,5 @@ mod failing { // The exit code should be 1 out.assert().code(1); - - Ok(()) } } diff --git a/src/tests/cli/data_url.rs b/src/tests/cli/data_url.rs index d1b255a..62e5bbe 100644 --- a/src/tests/cli/data_url.rs +++ b/src/tests/cli/data_url.rs @@ -12,8 +12,8 @@ mod passing { use std::process::Command; #[test] - fn bad_input_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn bad_input_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd.arg("data:,Hello%2C%20World!").output().unwrap(); // STDOUT should contain HTML @@ -27,13 +27,11 @@ mod passing { // The exit code should be 1 out.assert().code(1); - - Ok(()) } #[test] - fn isolate_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn isolate_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-I") @@ -54,13 +52,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn remove_css_from_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn remove_css_from_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-c") @@ -82,13 +78,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn remove_fonts_from_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn remove_fonts_from_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-F") @@ -110,13 +104,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn remove_frames_from_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn remove_frames_from_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-f") @@ -137,13 +129,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn remove_images_from_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn remove_images_from_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-i") @@ -173,13 +163,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn remove_js_from_data_url() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn remove_js_from_data_url() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("-j") @@ -203,14 +191,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn security_disallow_local_assets_within_data_url_targets( - ) -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn security_disallow_local_assets_within_data_url_targets() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg("data:text/html,%3Cscript%20src=\"src/tests/data/basic/local-script.js\"%3E%3C/script%3E") @@ -228,7 +213,5 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } } diff --git a/src/tests/cli/local_files.rs b/src/tests/cli/local_files.rs index 4c3465f..bdadad0 100644 --- a/src/tests/cli/local_files.rs +++ b/src/tests/cli/local_files.rs @@ -15,8 +15,8 @@ mod passing { use url::Url; #[test] - fn local_file_target_input_relative_target_path() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn local_file_target_input_relative_target_path() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let cwd_normalized: String = str!(env::current_dir().unwrap().to_str().unwrap()).replace("\\", "/"); let out = cmd @@ -65,13 +65,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn local_file_target_input_absolute_target_path() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn local_file_target_input_absolute_target_path() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/basic/local-file.html"); let out = cmd @@ -115,13 +113,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn local_file_url_target_input() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn local_file_url_target_input() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let cwd_normalized: String = str!(env::current_dir().unwrap().to_str().unwrap()).replace("\\", "/"); let file_url_protocol: &str = if cfg!(windows) { "file:///" } else { "file://" }; @@ -177,14 +173,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn embed_file_url_local_asset_within_style_attribute() -> Result<(), Box> - { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn embed_file_url_local_asset_within_style_attribute() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/svg/index.html"); let path_svg: &Path = Path::new("src/tests/data/svg/image.svg"); @@ -215,13 +208,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn discard_integrity_for_local_files() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn discard_integrity_for_local_files() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let cwd_normalized: String = str!(env::current_dir().unwrap().to_str().unwrap()).replace("\\", "/"); let file_url_protocol: &str = if cfg!(windows) { "file:///" } else { "file://" }; @@ -280,7 +271,5 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } } diff --git a/src/tests/cli/noscript.rs b/src/tests/cli/noscript.rs index 6dde13c..7ba93ce 100644 --- a/src/tests/cli/noscript.rs +++ b/src/tests/cli/noscript.rs @@ -15,8 +15,8 @@ mod passing { use url::Url; #[test] - fn parse_noscript_contents() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn parse_noscript_contents() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/noscript/index.html"); let path_svg: &Path = Path::new("src/tests/data/noscript/image.svg"); @@ -47,13 +47,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn unwrap_noscript_contents() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn unwrap_noscript_contents() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/noscript/index.html"); let path_svg: &Path = Path::new("src/tests/data/noscript/image.svg"); @@ -84,13 +82,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn unwrap_noscript_contents_nested() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn unwrap_noscript_contents_nested() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/noscript/nested.html"); let path_svg: &Path = Path::new("src/tests/data/noscript/image.svg"); @@ -121,13 +117,11 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } #[test] - fn unwrap_noscript_contents_with_script() -> Result<(), Box> { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + fn unwrap_noscript_contents_with_script() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let path_html: &Path = Path::new("src/tests/data/noscript/script.html"); let path_svg: &Path = Path::new("src/tests/data/noscript/image.svg"); @@ -158,7 +152,5 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } } diff --git a/src/tests/cli/unusual_encodings.rs b/src/tests/cli/unusual_encodings.rs index 006e745..4796cec 100644 --- a/src/tests/cli/unusual_encodings.rs +++ b/src/tests/cli/unusual_encodings.rs @@ -12,10 +12,10 @@ mod passing { use std::process::Command; #[test] - fn change_encoding_to_utf_8() -> Result<(), Box> { + fn change_encoding_to_utf_8() { let cwd = env::current_dir().unwrap(); let cwd_normalized: String = str!(cwd.to_str().unwrap()).replace("\\", "/"); - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME"))?; + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); let out = cmd .arg("-M") .arg(if cfg!(windows) { @@ -45,7 +45,5 @@ mod passing { // The exit code should be 0 out.assert().code(0); - - Ok(()) } }