diff options
author | Lars Kanis <lars@greiz-reinsdorf.de> | 2014-11-19 22:16:22 +0100 |
---|---|---|
committer | Lars Kanis <lars@greiz-reinsdorf.de> | 2014-12-29 21:26:35 +0100 |
commit | 969ef21d327ec3ada9c5c4b06c1ed92afa55dbec (patch) | |
tree | acfa74195b13650f0bbbf4cd6186caf01e90556e /activerecord/test | |
parent | b67b57d47368b4b834cfe8c58d9e26f5c819c154 (diff) | |
download | rails-969ef21d327ec3ada9c5c4b06c1ed92afa55dbec.tar.gz rails-969ef21d327ec3ada9c5c4b06c1ed92afa55dbec.tar.bz2 rails-969ef21d327ec3ada9c5c4b06c1ed92afa55dbec.zip |
PostgreSQL, Fix change detection caused by wrong data for bytea unescaping.
This showed up when running BinaryTest#test_load_save with the more
restrictive input string handling of pg-0.18.0.pre20141117110243.gem .
Bytea values sent to the server are in binary format, but are
returned back as escaped text. To fulfill the assumption that
type_cast_from_database(type_cast_for_database(binary)) == binary
we unescape only, if the value was really received from the server.
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/dirty_test.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/activerecord/test/cases/dirty_test.rb b/activerecord/test/cases/dirty_test.rb index 1eaff5e293..98cf60a8c4 100644 --- a/activerecord/test/cases/dirty_test.rb +++ b/activerecord/test/cases/dirty_test.rb @@ -688,7 +688,14 @@ class DirtyTest < ActiveRecord::TestCase serialize :data end - klass.create!(data: "foo") + binary = klass.create!(data: "\\\\foo") + + assert_not binary.changed? + + binary.data = binary.data.dup + + assert_not binary.changed? + binary = klass.last assert_not binary.changed? |