@@ -106,3 +106,58 @@ impl_decode!(
106106 domain_name_without_compression,
107107 decode_without_compression
108108) ;
109+
110+ #[ test]
111+ fn domain_name_without_compression_1 ( ) {
112+ let domain_name: DomainName = "example.org." . parse ( ) . unwrap ( ) ;
113+ let mut decoder = Decoder :: main ( bytes:: Bytes :: copy_from_slice (
114+ & b"\x07 example\x03 org\0 \x07 example\x03 org\0 " [ ..] ,
115+ ) ) ;
116+ assert_eq ! (
117+ decoder. domain_name_without_compression( ) . unwrap( ) ,
118+ domain_name
119+ ) ;
120+ assert_eq ! (
121+ decoder. domain_name_without_compression( ) . unwrap( ) ,
122+ domain_name
123+ ) ;
124+ assert ! ( decoder. is_finished( ) . unwrap( ) ) ;
125+ }
126+
127+ #[ test]
128+ fn domain_name_without_compression_2 ( ) {
129+ let domain_name: DomainName = "example.org." . parse ( ) . unwrap ( ) ;
130+ let mut decoder = Decoder :: main ( bytes:: Bytes :: copy_from_slice (
131+ & b"\x07 example\x03 org\0 \x07 example\x03 org\0 " [ ..] ,
132+ ) ) ;
133+ assert_eq ! (
134+ decoder. domain_name_without_compression( ) . unwrap( ) ,
135+ domain_name
136+ ) ;
137+ assert_eq ! (
138+ decoder. domain_name_without_compression( ) . unwrap( ) ,
139+ domain_name
140+ ) ;
141+ assert ! ( decoder. is_finished( ) . unwrap( ) ) ;
142+ }
143+
144+ #[ test]
145+ fn domain_name_without_compression_3 ( ) {
146+ let domain_name: DomainName = "example.org." . parse ( ) . unwrap ( ) ;
147+ let mut decoder = Decoder :: main ( bytes:: Bytes :: copy_from_slice (
148+ & b"\x07 example\x03 org\0 \x07 example\x03 org\0 \xc0 \r " [ ..] ,
149+ ) ) ;
150+ assert_eq ! (
151+ decoder. domain_name_without_compression( ) . unwrap( ) ,
152+ domain_name
153+ ) ;
154+ assert_eq ! (
155+ decoder. domain_name_without_compression( ) . unwrap( ) ,
156+ domain_name
157+ ) ;
158+ assert_eq ! (
159+ decoder. domain_name_without_compression( ) ,
160+ Err ( DecodeError :: DomainNameCompressed ( 13 ) )
161+ ) ;
162+ assert ! ( decoder. is_finished( ) . unwrap( ) ) ;
163+ }
0 commit comments