use uxn_tal::{parse_uxntal_url, ProtocolParser};
#[test]
fn test_open_url_format_enhanced_parser() {
let encoded_url = "https%3A//wiki.xxiivv.com/etc/catclock.tal.txt";
let url = format!("uxntal://open?url={}", encoded_url);
let result = parse_uxntal_url(&url);
assert_eq!(result.url, "https://wiki.xxiivv.com/etc/catclock.tal.txt");
let url_with_slash = format!("uxntal://open/?url={}", encoded_url);
let result_with_slash = parse_uxntal_url(&url_with_slash);
assert_eq!(
result_with_slash.url,
"https://wiki.xxiivv.com/etc/catclock.tal.txt"
);
}
#[test]
fn test_open_url_format_standard_api() {
let encoded_url = "https%3A//wiki.xxiivv.com/etc/catclock.tal.txt";
let url = format!("uxntal://open?url={}", encoded_url);
let result = ProtocolParser::parse(&url);
assert_eq!(result.url, "https://wiki.xxiivv.com/etc/catclock.tal.txt");
let url_with_slash = format!("uxntal://open/?url={}", encoded_url);
let result_with_slash = ProtocolParser::parse(&url_with_slash);
assert_eq!(
result_with_slash.url,
"https://wiki.xxiivv.com/etc/catclock.tal.txt"
);
}
#[test]
fn test_open_url_with_protocol_vars() {
let encoded_url = "https%3A//wiki.xxiivv.com/etc/catclock.tal.txt";
let url = format!("uxntal:widget:debug://open?url={}", encoded_url);
let result_enhanced = parse_uxntal_url(&url);
assert_eq!(
result_enhanced.url,
"https://wiki.xxiivv.com/etc/catclock.tal.txt"
);
assert_eq!(
result_enhanced.proto_vars.get("widget").unwrap().as_bool(),
Some(true)
);
assert_eq!(
result_enhanced.proto_vars.get("debug").unwrap().as_bool(),
Some(true)
);
let result_standard = ProtocolParser::parse(&url);
assert_eq!(
result_standard.url,
"https://wiki.xxiivv.com/etc/catclock.tal.txt"
);
assert_eq!(
result_standard.proto_vars.get("widget").unwrap().as_bool(),
Some(true)
);
assert_eq!(
result_standard.proto_vars.get("debug").unwrap().as_bool(),
Some(true)
);
}