use debugger_test::debugger_test; use url::Url; #[inline(never)] fn __break() {} #[debugger_test( debugger = "cdb", commands = " .nvlist dx base_url dx url_with_non_special_scheme dx url_with_user_pass_port_query_fragments dx url_blob dx url_with_base dx url_with_base_replaced dx url_with_comma", expected_statements = r#" pattern:debugger_visualizer-.*\.exe \(embedded NatVis ".*-[0-9]+\.natvis"\) base_url : "http://example.org/foo/bar" [Type: url::Url] [] [Type: url::Url] [scheme] : "http" [host] : "example.org" [path] : "/foo/bar" url_with_non_special_scheme : "non-special://test/x" [Type: url::Url] [] [Type: url::Url] [scheme] : "non-special" [host] : "test" [path] : "/x" url_with_user_pass_port_query_fragments : "http://user:pass@foo:21/bar;par?b#c" [Type: url::Url] [] [Type: url::Url] [scheme] : "http" [username] : "user" [host] : "foo" [port] : 21 [path] : "/bar;par" [query] : "b" [fragment] : "c" url_blob : "blob:https://example.com:443/" [Type: url::Url] [] [Type: url::Url] [scheme] : "blob" [path] : "https://example.com:443/" url_with_base : "http://example.org/a%2fc" [Type: url::Url] [] [Type: url::Url] [scheme] : "http" [host] : "example.org" [path] : "/a%2fc" url_with_base_replaced : "http://[::7f00:1]/" [Type: url::Url] [] [Type: url::Url] [scheme] : "http" [host] : "[::7f00:1]" [path] : "/" url_with_comma : "data:text/html,test#test" [Type: url::Url] [] [Type: url::Url] [scheme] : "data" [path] : "text/html,test" [fragment] : "test" "# )] fn test_url_visualizer() { // Copied from https://github.com/web-platform-tests/wpt/blob/master/url/ let base_url = Url::parse("http://example.org/foo/bar").unwrap(); assert_eq!(base_url.as_str(), "http://example.org/foo/bar"); let url_with_non_special_scheme = Url::parse("non-special://:@test/x").unwrap(); assert_eq!(url_with_non_special_scheme.as_str(), "non-special://test/x"); let url_with_user_pass_port_query_fragments = Url::parse("http://user:pass@foo:21/bar;par?b#c").unwrap(); assert_eq!( url_with_user_pass_port_query_fragments.as_str(), "http://user:pass@foo:21/bar;par?b#c" ); let url_blob = Url::parse("blob:https://example.com:443/").unwrap(); assert_eq!(url_blob.as_str(), "blob:https://example.com:443/"); let url_with_base = base_url.join("/a%2fc").unwrap(); assert_eq!(url_with_base.as_str(), "http://example.org/a%2fc"); let url_with_base_replaced = base_url.join("http://[::127.0.0.1]").unwrap(); assert_eq!(url_with_base_replaced.as_str(), "http://[::7f00:1]/"); let url_with_comma = base_url.join("data:text/html,test#test").unwrap(); assert_eq!(url_with_comma.as_str(), "data:text/html,test#test"); __break(); }