#![cfg(all(feature = "browser", target_os = "windows"))]
use crate::brain::tools::browser::parse_windows_reg_prog_id;
fn reg_output(prog_id: &str) -> String {
format!(
"\r\nHKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\https\\UserChoice\r\n ProgId REG_SZ {}\r\n\r\n",
prog_id
)
}
#[test]
fn resolves_chrome_html() {
assert_eq!(
parse_windows_reg_prog_id(®_output("ChromeHTML")),
Some("chromehtml".into())
);
}
#[test]
fn resolves_brave_html() {
assert_eq!(
parse_windows_reg_prog_id(®_output("BraveHTML")),
Some("bravehtml".into())
);
}
#[test]
fn resolves_msedge_html() {
assert_eq!(
parse_windows_reg_prog_id(®_output("MSEdgeHTM")),
Some("msedgehtm".into())
);
}
#[test]
fn returns_none_on_empty_output() {
assert_eq!(parse_windows_reg_prog_id(""), None);
}
#[test]
fn returns_none_when_no_progid_line() {
let stdout = "ERROR: The system was unable to find the specified registry key or value.\r\n";
assert_eq!(parse_windows_reg_prog_id(stdout), None);
}
#[test]
fn output_is_lowercased() {
assert_eq!(
parse_windows_reg_prog_id(®_output("CHROMEHTML")),
Some("chromehtml".into())
);
}