aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/hash_ext_test.rb
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2010-07-22 05:08:34 +0800
committerAaron Patterson <aaron.patterson@gmail.com>2010-07-22 06:23:13 +0800
commit5c858220085dc4ddc1bec496747059dfbe32f1da (patch)
tree360e2ef5a119da0b6fb506c250b6914c97c19b76 /activesupport/test/core_ext/hash_ext_test.rb
parentb0c7dee4f2744286069c5ff4e65c3d081a4cb24a (diff)
downloadrails-5c858220085dc4ddc1bec496747059dfbe32f1da.tar.gz
rails-5c858220085dc4ddc1bec496747059dfbe32f1da.tar.bz2
rails-5c858220085dc4ddc1bec496747059dfbe32f1da.zip
Hash#to_param is doesn't use sort anymore, some tests added for Hash#to_param
Diffstat (limited to 'activesupport/test/core_ext/hash_ext_test.rb')
-rw-r--r--activesupport/test/core_ext/hash_ext_test.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/hash_ext_test.rb b/activesupport/test/core_ext/hash_ext_test.rb
index 7b2c10908f..f369f55675 100644
--- a/activesupport/test/core_ext/hash_ext_test.rb
+++ b/activesupport/test/core_ext/hash_ext_test.rb
@@ -2,6 +2,8 @@ require 'abstract_unit'
require 'active_support/core_ext/hash'
require 'bigdecimal'
require 'active_support/core_ext/string/access'
+require 'active_support/ordered_hash'
+require 'active_support/core_ext/object/conversions'
class HashExtTest < Test::Unit::TestCase
def setup
@@ -449,6 +451,29 @@ class IWriteMyOwnXML
end
end
+class HashExtToParamTests < Test::Unit::TestCase
+ class ToParam < String
+ def to_param
+ "#{self}-1"
+ end
+ end
+
+ def test_string_hash
+ assert_equal '', {}.to_param
+ assert_equal 'hello=world', { :hello => "world" }.to_param
+ assert_equal 'hello=10', { "hello" => 10 }.to_param
+ assert_equal 'hello=world&say_bye=true', ActiveSupport::OrderedHash[:hello, "world", "say_bye", true].to_param
+ end
+
+ def test_number_hash
+ assert_equal '10=20&30=40&50=60', ActiveSupport::OrderedHash[10, 20, 30, 40, 50, 60].to_param
+ end
+
+ def test_to_param_hash
+ assert_equal 'custom=param-1&custom2=param2-1', ActiveSupport::OrderedHash[ToParam.new('custom'), ToParam.new('param'), ToParam.new('custom2'), ToParam.new('param2')].to_param
+ end
+end
+
class HashToXmlTest < Test::Unit::TestCase
def setup
@xml_options = { :root => :person, :skip_instruct => true, :indent => 0 }