diff options
Diffstat (limited to 'spec/lib/gitlab/encoding_helper_spec.rb')
-rw-r--r-- | spec/lib/gitlab/encoding_helper_spec.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/lib/gitlab/encoding_helper_spec.rb b/spec/lib/gitlab/encoding_helper_spec.rb index cf0d1577314..268ac5dcc21 100644 --- a/spec/lib/gitlab/encoding_helper_spec.rb +++ b/spec/lib/gitlab/encoding_helper_spec.rb @@ -3,6 +3,8 @@ require "spec_helper" RSpec.describe Gitlab::EncodingHelper do + using RSpec::Parameterized::TableSyntax + let(:ext_class) { Class.new { extend Gitlab::EncodingHelper } } let(:binary_string) { File.read(Rails.root + "spec/fixtures/dk.png") } @@ -90,6 +92,22 @@ RSpec.describe Gitlab::EncodingHelper do end end + describe '#encode_utf8_no_detect' do + where(:input, :expected) do + "abcd" | "abcd" + "DzDzDz" | "DzDzDz" + "\xC7\xB2\xC7DzDzDz" | "Dz�DzDzDz" + "🐤🐤🐤🐤\xF0\x9F\x90" | "🐤🐤🐤🐤�" + end + + with_them do + it 'drops invalid UTF-8' do + expect(ext_class.encode_utf8_no_detect(input.dup.force_encoding(Encoding::ASCII_8BIT))).to eq(expected) + expect(ext_class.encode_utf8_no_detect(input)).to eq(expected) + end + end + end + describe '#encode_utf8' do [ ["nil", nil, nil], |