@@ -702,36 +702,78 @@ mod test {
702
702
703
703
#[ test]
704
704
fn test_extract_line_single_line ( ) {
705
- let ( line, offset) = extract_line ( b"hello world" , 6 ) ;
706
- assert_eq ! ( line, b"hello world" ) ;
705
+ let buffer = b"hello world" ;
706
+ let buffer_offset = 6 ;
707
+ let expected_line = b"hello world" ;
708
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
709
+ assert_eq ! ( line, expected_line) ;
707
710
assert_eq ! ( offset, 6 ) ;
711
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
708
712
}
709
713
710
714
#[ test]
711
715
fn test_extract_line_first ( ) {
712
- let ( line, offset) = extract_line ( b"1\n 2\n 3" , 0 ) ;
713
- assert_eq ! ( line, b"1" ) ;
716
+ let buffer = b"1\n 2\n 3" ;
717
+ let buffer_offset = 0 ;
718
+ let expected_line = b"1" ;
719
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
720
+ assert_eq ! ( line, expected_line) ;
714
721
assert_eq ! ( offset, 0 ) ;
722
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
715
723
}
716
724
717
725
#[ test]
718
726
fn test_extract_line_middle ( ) {
719
- let ( line, offset) = extract_line ( b"1\n 2\n 3" , 2 ) ;
720
- assert_eq ! ( line, b"2" ) ;
727
+ let buffer = b"1\n 2\n 3" ;
728
+ let buffer_offset = 2 ;
729
+ let expected_line = b"2" ;
730
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
731
+ assert_eq ! ( line, expected_line) ;
721
732
assert_eq ! ( offset, 0 ) ;
733
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
722
734
}
723
735
724
736
#[ test]
725
737
fn test_extract_line_end ( ) {
726
- let ( line, offset) = extract_line ( b"1\n 2\n 3" , 4 ) ;
727
- assert_eq ! ( line, b"3" ) ;
738
+ let buffer = b"1\n 2\n 3" ;
739
+ let buffer_offset = 4 ;
740
+ let expected_line = b"3" ;
741
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
742
+ assert_eq ! ( line, expected_line) ;
728
743
assert_eq ! ( offset, 0 ) ;
744
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
729
745
}
730
746
731
747
#[ test]
732
748
fn test_extract_line_offset_change ( ) {
733
- let ( line, offset) = extract_line ( b"1\n hello world\n 2" , 8 ) ;
734
- assert_eq ! ( line, b"hello world" ) ;
749
+ let buffer = b"1\n hello world\n 2" ;
750
+ let buffer_offset = 8 ;
751
+ let expected_line = b"hello world" ;
752
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
753
+ assert_eq ! ( line, expected_line) ;
735
754
assert_eq ! ( offset, 6 ) ;
755
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
756
+ }
757
+
758
+ #[ test]
759
+ fn test_extract_line_windows ( ) {
760
+ let buffer = b"1\r \n hello world\r \n 2" ;
761
+ let buffer_offset = 9 ;
762
+ let expected_line = b"hello world" ;
763
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
764
+ assert_eq ! ( line, expected_line) ;
765
+ assert_eq ! ( offset, 6 ) ;
766
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
767
+ }
768
+
769
+ #[ test]
770
+ fn test_extract_line_slovak ( ) {
771
+ let buffer = b"LastErrorMessage=%1.%n%nChyba %2: %3\r \n SetupFileMissing=In\x9A tala\xE8 n\xFD adres\xE1 r neobsahuje s\xFA bor %1. Opravte, pros\xED m, t\xFA to chybu alebo si zaobstarajte nov\xFA k\xF3 piu tohto produktu.\r \n SetupFileCorrupt=S\xFA bory sprievodcu in\x9A tal\xE1 ciou s\xFA po\x9A koden\xE9 . Zaobstarajte si, pros\xED m, nov\xFA k\xF3 piu tohto produktu." ;
772
+ let buffer_offset = 66 ;
773
+ let expected_line = b"SetupFileMissing=In\x9A tala\xE8 n\xFD adres\xE1 r neobsahuje s\xFA bor %1. Opravte, pros\xED m, t\xFA to chybu alebo si zaobstarajte nov\xFA k\xF3 piu tohto produktu." ;
774
+ let ( line, offset) = extract_line ( buffer, buffer_offset) ;
775
+ assert_eq ! ( line, expected_line) ;
776
+ assert_eq ! ( offset, 28 ) ;
777
+ assert_eq ! ( line[ offset] , buffer[ buffer_offset] ) ;
736
778
}
737
779
}
0 commit comments