diff options
Diffstat (limited to 'activerecord/test/cases/binary_test.rb')
-rw-r--r-- | activerecord/test/cases/binary_test.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/activerecord/test/cases/binary_test.rb b/activerecord/test/cases/binary_test.rb new file mode 100644 index 0000000000..d5376ece69 --- /dev/null +++ b/activerecord/test/cases/binary_test.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +require "cases/helper" + +# Without using prepared statements, it makes no sense to test +# BLOB data with DB2, because the length of a statement +# is limited to 32KB. +unless current_adapter?(:DB2Adapter) + require "models/binary" + + class BinaryTest < ActiveRecord::TestCase + FIXTURES = %w(flowers.jpg example.log test.txt) + + def test_mixed_encoding + str = "\x80".dup + str.force_encoding("ASCII-8BIT") + + binary = Binary.new name: "いただきます!", data: str + binary.save! + binary.reload + assert_equal str, binary.data + + name = binary.name + + assert_equal "いただきます!", name + end + + def test_load_save + Binary.delete_all + + FIXTURES.each do |filename| + data = File.read(ASSETS_ROOT + "/#{filename}") + data.force_encoding("ASCII-8BIT") + data.freeze + + bin = Binary.new(data: data) + assert_equal data, bin.data, "Newly assigned data differs from original" + + bin.save! + assert_equal data, bin.data, "Data differs from original after save" + + assert_equal data, bin.reload.data, "Reloaded data differs from original" + end + end + end +end |