use devup_editor_html::__test_is_safe_href as is_safe_href;
#[test]
fn accepts_http_https_mailto_tel() {
assert!(is_safe_href("https://example.com"));
assert!(is_safe_href("http://example.com"));
assert!(is_safe_href("mailto:user@example.com"));
assert!(is_safe_href("tel:+1234567890"));
}
#[test]
fn accepts_relative_hash_query_urls() {
assert!(is_safe_href("/about"));
assert!(is_safe_href("./docs"));
assert!(is_safe_href("#section-2"));
assert!(is_safe_href("?q=search"));
}
#[test]
fn rejects_javascript_scheme_xss() {
assert!(!is_safe_href("javascript:alert(1)"));
assert!(!is_safe_href("JavaScript:alert(1)"));
assert!(!is_safe_href(" javascript:void(0)"));
}
#[test]
fn rejects_vbscript_scheme() {
assert!(!is_safe_href("vbscript:msgbox(\"x\")"));
}
#[test]
fn rejects_file_scheme() {
assert!(!is_safe_href("file:///etc/passwd"));
}
#[test]
fn rejects_generic_data_but_allows_data_image() {
assert!(!is_safe_href("data:text/html,<script>alert(1)</script>"));
assert!(is_safe_href("data:image/png;base64,iVBOR..."));
}
#[test]
fn rejects_empty_or_whitespace_only() {
assert!(!is_safe_href(""));
assert!(!is_safe_href(" "));
}