diff options
Diffstat (limited to 'activesupport/test/core_ext/object/to_param_test.rb')
-rw-r--r-- | activesupport/test/core_ext/object/to_param_test.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/object/to_param_test.rb b/activesupport/test/core_ext/object/to_param_test.rb new file mode 100644 index 0000000000..612156bd99 --- /dev/null +++ b/activesupport/test/core_ext/object/to_param_test.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require "abstract_unit" +require "active_support/core_ext/object/to_param" + +class ToParamTest < ActiveSupport::TestCase + class CustomString < String + def to_param + "custom-#{ self }" + end + end + + def test_object + foo = Object.new + def foo.to_s; "foo" end + assert_equal "foo", foo.to_param + end + + def test_nil + assert_nil nil.to_param + end + + def test_boolean + assert_equal true, true.to_param + assert_equal false, false.to_param + end + + def test_array + # Empty Array + assert_equal "", [].to_param + + array = [1, 2, 3, 4] + assert_equal "1/2/3/4", array.to_param + + # Array of different objects + array = [1, "3", { a: 1, b: 2 }, nil, true, false, CustomString.new("object")] + assert_equal "1/3/a=1&b=2//true/false/custom-object", array.to_param + end +end |