2011-06-06 18:17:44 +00:00
|
|
|
require "cases/helper"
|
2008-09-11 20:38:20 +00:00
|
|
|
require 'models/binary'
|
|
|
|
|
|
|
|
class SanitizeTest < ActiveRecord::TestCase
|
|
|
|
def setup
|
|
|
|
end
|
|
|
|
|
2013-04-26 00:20:33 +00:00
|
|
|
def test_sanitize_sql_hash_handles_associations
|
2013-05-07 21:35:54 +00:00
|
|
|
quoted_bambi = ActiveRecord::Base.connection.quote("Bambi")
|
|
|
|
quoted_column_name = ActiveRecord::Base.connection.quote_column_name("name")
|
|
|
|
quoted_table_name = ActiveRecord::Base.connection.quote_table_name("adorable_animals")
|
|
|
|
expected_value = "#{quoted_table_name}.#{quoted_column_name} = #{quoted_bambi}"
|
2013-05-07 01:00:11 +00:00
|
|
|
|
|
|
|
assert_equal expected_value, Binary.send(:sanitize_sql_hash, {adorable_animals: {name: 'Bambi'}})
|
2013-04-26 00:20:33 +00:00
|
|
|
end
|
|
|
|
|
2008-09-11 20:38:20 +00:00
|
|
|
def test_sanitize_sql_array_handles_string_interpolation
|
|
|
|
quoted_bambi = ActiveRecord::Base.connection.quote_string("Bambi")
|
|
|
|
assert_equal "name=#{quoted_bambi}", Binary.send(:sanitize_sql_array, ["name=%s", "Bambi"])
|
2008-09-21 16:01:15 +00:00
|
|
|
assert_equal "name=#{quoted_bambi}", Binary.send(:sanitize_sql_array, ["name=%s", "Bambi".mb_chars])
|
2008-09-11 20:38:20 +00:00
|
|
|
quoted_bambi_and_thumper = ActiveRecord::Base.connection.quote_string("Bambi\nand\nThumper")
|
|
|
|
assert_equal "name=#{quoted_bambi_and_thumper}",Binary.send(:sanitize_sql_array, ["name=%s", "Bambi\nand\nThumper"])
|
2008-09-21 16:01:15 +00:00
|
|
|
assert_equal "name=#{quoted_bambi_and_thumper}",Binary.send(:sanitize_sql_array, ["name=%s", "Bambi\nand\nThumper".mb_chars])
|
2008-09-11 20:38:20 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_sanitize_sql_array_handles_bind_variables
|
|
|
|
quoted_bambi = ActiveRecord::Base.connection.quote("Bambi")
|
|
|
|
assert_equal "name=#{quoted_bambi}", Binary.send(:sanitize_sql_array, ["name=?", "Bambi"])
|
2008-09-21 16:01:15 +00:00
|
|
|
assert_equal "name=#{quoted_bambi}", Binary.send(:sanitize_sql_array, ["name=?", "Bambi".mb_chars])
|
2008-09-11 20:38:20 +00:00
|
|
|
quoted_bambi_and_thumper = ActiveRecord::Base.connection.quote("Bambi\nand\nThumper")
|
|
|
|
assert_equal "name=#{quoted_bambi_and_thumper}", Binary.send(:sanitize_sql_array, ["name=?", "Bambi\nand\nThumper"])
|
2008-09-21 16:01:15 +00:00
|
|
|
assert_equal "name=#{quoted_bambi_and_thumper}", Binary.send(:sanitize_sql_array, ["name=?", "Bambi\nand\nThumper".mb_chars])
|
2008-09-11 20:38:20 +00:00
|
|
|
end
|
|
|
|
end
|