@@ -22,23 +22,23 @@ module RSpec::Support
22
22
end
23
23
24
24
describe '#to_s' do
25
- if RUBY_VERSION == '1.9.2' && RSpec :: Support :: Ruby . mri?
25
+ if RUBY_VERSION == '1.9.2' && Ruby . mri?
26
26
it 'does nothing to an invalid byte sequence' do
27
27
source_encoding = Encoding . find ( 'UTF8-MAC' )
28
28
incompatible_encoding = Encoding . find ( 'IBM737' )
29
- string = "\xEF hi I am not going to work " . force_encoding ( source_encoding )
29
+ string = "\xEF hi I am not going to change " . force_encoding ( source_encoding )
30
30
resulting_string = build_encoded_string ( string , incompatible_encoding )
31
31
32
- expect ( resulting_string . to_s ) . to eq ( "\xEF hi I am not going to work" )
32
+ expect ( resulting_string . to_s ) . to eq ( "\xEF hi I am not going to change" . force_encoding ( incompatible_encoding ) )
33
33
end
34
34
35
35
it 'does nothing to unconvertable characters' do
36
36
source_encoding = Encoding . find ( 'UTF-16LE' )
37
37
incompatible_encoding = Encoding . find ( 'IBM737' )
38
- string = "\xEF hi I am not going to work " . force_encoding ( source_encoding )
38
+ string = "\xEF hi I am not going to change " . force_encoding ( source_encoding )
39
39
resulting_string = build_encoded_string ( string , incompatible_encoding )
40
40
41
- expect ( resulting_string . to_s ) . to eq ( "\xEF hi I am not going to work" )
41
+ expect ( resulting_string . to_s ) . to eq ( "\xEF hi I am not going to change" . force_encoding ( incompatible_encoding ) )
42
42
end
43
43
else
44
44
@@ -102,6 +102,14 @@ module RSpec::Support
102
102
end
103
103
104
104
describe '#split' do
105
+ it 'fails to split a string with an invalid byte sequence' do
106
+ message_with_invalid_byte_sequence = "\xEF \255 \xAD I have bad bytes" . force_encoding ( target_encoding )
107
+ resulting_string = build_encoded_string ( message_with_invalid_byte_sequence , target_encoding )
108
+ expect {
109
+ resulting_string . split ( "\n " )
110
+ } . to raise_error ( ArgumentError )
111
+ end
112
+
105
113
it 'splits the string based on the delimiter accounting for encoding' do
106
114
wrapped_string = "aaaaaaaaaaa#{ ascii_arrow_symbol } aaaaa" . force_encoding ( "ASCII-8BIT" )
107
115
0 commit comments