diff options
Diffstat (limited to 'activerecord/test/cases/adapters/postgresql/quoting_test.rb')
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/quoting_test.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/quoting_test.rb b/activerecord/test/cases/adapters/postgresql/quoting_test.rb new file mode 100644 index 0000000000..d571355a9c --- /dev/null +++ b/activerecord/test/cases/adapters/postgresql/quoting_test.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +require "cases/helper" + +module ActiveRecord + module ConnectionAdapters + class PostgreSQLAdapter + class QuotingTest < ActiveRecord::PostgreSQLTestCase + def setup + @conn = ActiveRecord::Base.connection + end + + def test_type_cast_true + assert_equal true, @conn.type_cast(true) + end + + def test_type_cast_false + assert_equal false, @conn.type_cast(false) + end + + def test_quote_float_nan + nan = 0.0 / 0 + assert_equal "'NaN'", @conn.quote(nan) + end + + def test_quote_float_infinity + infinity = 1.0 / 0 + assert_equal "'Infinity'", @conn.quote(infinity) + end + + def test_quote_range + range = "1,2]'; SELECT * FROM users; --".."a" + type = OID::Range.new(Type::Integer.new, :int8range) + assert_equal "'[1,0]'", @conn.quote(type.serialize(range)) + end + + def test_quote_bit_string + value = "'); SELECT * FROM users; /*\n01\n*/--" + type = OID::Bit.new + assert_nil @conn.quote(type.serialize(value)) + end + + def test_quote_table_name_with_spaces + value = "user posts" + assert_equal "\"user posts\"", @conn.quote_table_name(value) + end + end + end + end +end |