]> git.proxmox.com Git - rustc.git/blob - src/vendor/idna/tests/unit.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / vendor / idna / tests / unit.rs
1 extern crate idna;
2 extern crate unicode_normalization;
3
4 use idna::uts46;
5 use unicode_normalization::char::is_combining_mark;
6
7
8 fn _to_ascii(domain: &str) -> Result<String, uts46::Errors> {
9 uts46::to_ascii(domain, uts46::Flags {
10 transitional_processing: false,
11 use_std3_ascii_rules: true,
12 verify_dns_length: true,
13 })
14 }
15
16 #[test]
17 fn test_v5() {
18 // IdnaTest:784 蔏。𑰺
19 assert!(is_combining_mark('\u{11C3A}'));
20 assert!(_to_ascii("\u{11C3A}").is_err());
21 assert!(_to_ascii("\u{850f}.\u{11C3A}").is_err());
22 assert!(_to_ascii("\u{850f}\u{ff61}\u{11C3A}").is_err());
23 }
24
25 #[test]
26 fn test_v8_bidi_rules() {
27 assert_eq!(_to_ascii("abc").unwrap(), "abc");
28 assert_eq!(_to_ascii("123").unwrap(), "123");
29 assert_eq!(_to_ascii("אבּג").unwrap(), "xn--kdb3bdf");
30 assert_eq!(_to_ascii("ابج").unwrap(), "xn--mgbcm");
31 assert_eq!(_to_ascii("abc.ابج").unwrap(), "abc.xn--mgbcm");
32 assert_eq!(_to_ascii("אבּג.ابج").unwrap(), "xn--kdb3bdf.xn--mgbcm");
33
34 // Bidi domain names cannot start with digits
35 assert!(_to_ascii("0a.\u{05D0}").is_err());
36 assert!(_to_ascii("0à.\u{05D0}").is_err());
37
38 // Bidi chars may be punycode-encoded
39 assert!(_to_ascii("xn--0ca24w").is_err());
40 }