diff --git a/tests/name_tests.rs b/tests/name_tests.rs index 2537e7c..cde88ac 100644 --- a/tests/name_tests.rs +++ b/tests/name_tests.rs @@ -26,3 +26,42 @@ fn test_dns_name_ref_traits() { assert_eq!(format!("{:?}", &a), "DnsNameRef(\"example.com\")"); } } + +#[cfg(feature = "alloc")] +#[test] +fn test_dns_name_traits() { + use webpki::DnsName; + + fn compile_time_assert_hash() {} + + compile_time_assert_hash::(); + compile_time_assert_send::(); + compile_time_assert_sync::(); + + let a_ref = DnsNameRef::try_from_ascii(b"example.com").unwrap(); + + // `From` + let a: DnsName = DnsName::from(a_ref); + + // `Clone`, `Debug`, `PartialEq`. + assert_eq!(&a, &a.clone()); + + // `Debug`. + assert_eq!(format!("{:?}", &a), "DnsName(\"example.com\")"); + + // PartialEq is case-insensitive + assert_eq!( + a, + DnsName::from(DnsNameRef::try_from_ascii(b"Example.Com").unwrap()) + ); + + // PartialEq isn't completely wrong. + assert_ne!( + a, + DnsName::from(DnsNameRef::try_from_ascii(b"fxample.com").unwrap()) + ); + assert_ne!( + a, + DnsName::from(DnsNameRef::try_from_ascii(b"example.co").unwrap()) + ); +}