diff options
author | Titus Wormer <tituswormer@gmail.com> | 2022-06-15 13:56:34 +0200 |
---|---|---|
committer | Titus Wormer <tituswormer@gmail.com> | 2022-06-15 13:56:34 +0200 |
commit | b020566ae369bef1116b7ea91d62884116be73d5 (patch) | |
tree | 8f5faccd23fe5fefee5306db7ec5ef5bd0183feb /tests/misc_url.rs | |
parent | e69071ccdda35e5b48b1623f9b2c01bcdde45a56 (diff) | |
download | markdown-rs-b020566ae369bef1116b7ea91d62884116be73d5.tar.gz markdown-rs-b020566ae369bef1116b7ea91d62884116be73d5.tar.bz2 markdown-rs-b020566ae369bef1116b7ea91d62884116be73d5.zip |
Add tests for urls
Diffstat (limited to 'tests/misc_url.rs')
-rw-r--r-- | tests/misc_url.rs | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/tests/misc_url.rs b/tests/misc_url.rs new file mode 100644 index 0000000..a6f8ead --- /dev/null +++ b/tests/misc_url.rs @@ -0,0 +1,152 @@ +extern crate micromark; +use micromark::micromark; + +#[test] +fn url() { + assert_eq!( + micromark("<https://%>"), + "<p><a href=\"https://%25\">https://%</a></p>", + "should support incorrect percentage encoded values (0)" + ); + + // To do: link. + // assert_eq!( + // micromark("[](<%>)"), + // "<p><a href=\"%25\"></a></p>", + // "should support incorrect percentage encoded values (1)" + // ); + + // To do: link. + // assert_eq!( + // micromark("[](<%%20>)"), + // "<p><a href=\"%25%20\"></a></p>", + // "should support incorrect percentage encoded values (2)" + // ); + + // To do: link. + // assert_eq!( + // micromark("[](<%a%20>)"), + // "<p><a href=\"%25a%20\"></a></p>", + // "should support incorrect percentage encoded values (3)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{D800}bar>)"), + // "<p><a href=\"foo%EF%BF%BDbar\"></a></p>", + // "should support a lone high surrogate (lowest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{DBFF}bar>)"), + // "<p><a href=\"foo%EF%BF%BDbar\"></a></p>", + // "should support a lone high surrogate (highest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<\u{D800}bar>)"), + // "<p><a href=\"%EF%BF%BDbar\"></a></p>", + // "should support a lone high surrogate at the start (lowest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<\u{DBFF}bar>)"), + // "<p><a href=\"%EF%BF%BDbar\"></a></p>", + // "should support a lone high surrogate at the start (highest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{D800}>)"), + // "<p><a href=\"foo%EF%BF%BD\"></a></p>", + // "should support a lone high surrogate at the end (lowest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{DBFF}>)"), + // "<p><a href=\"foo%EF%BF%BD\"></a></p>", + // "should support a lone high surrogate at the end (highest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{DC00}bar>)"), + // "<p><a href=\"foo%EF%BF%BDbar\"></a></p>", + // "should support a lone low surrogate (lowest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{DFFF}bar>)"), + // "<p><a href=\"foo%EF%BF%BDbar\"></a></p>", + // "should support a lone low surrogate (highest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<\u{DC00}bar>)"), + // "<p><a href=\"%EF%BF%BDbar\"></a></p>", + // "should support a lone low surrogate at the start (lowest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<\u{DFFF}bar>)"), + // "<p><a href=\"%EF%BF%BDbar\"></a></p>", + // "should support a lone low surrogate at the start (highest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{DC00}>)"), + // "<p><a href=\"foo%EF%BF%BD\"></a></p>", + // "should support a lone low surrogate at the end (lowest)" + // ); + + // Surrogate handling not needed in Rust. + // assert_eq!( + // micromark("[](<foo\u{DFFF}>)"), + // "<p><a href=\"foo%EF%BF%BD\"></a></p>", + // "should support a lone low surrogate at the end (highest)" + // ); + + // To do: link. + // assert_eq!( + // micromark("[](<🤔>)"), + // "<p><a href=\"%F0%9F%A4%94\"></a></p>", + // "should support an emoji" + // ); + + // To do: link. + // let mut ascii: Vec<char> = vec![]; + // let mut code = 0; + + // while code < 128 { + // // LF and CR can’t be in resources. + // if code == 10 || code == 13 { + // code += 1; + // continue; + // } + + // // `<`, `>`, `\` need to be escaped. + // if code == 60 || code == 62 || code == 92 { + // ascii.push('\\'); + // } + + // ascii.push(char::from_u32(code).unwrap()); + + // code += 1; + // } + + // let ascii_in = ascii.into_iter().collect::<String>(); + // let ascii_out = "%EF%BF%BD%01%02%03%04%05%06%07%08%09%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22#$%25&\"()*+,-./0123456789:;%3C=%3E?@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F"; + // assert_eq!( + // micromark(&format!("[](<{}>)", ascii_in)), + // format!("<p><a href=\"{}\"></a></p>", ascii_out), + // "should support ascii characters" + // ); +} |