mirror of https://github.com/rails/rails
Add missing test case for Array#to_sentence, collect all test cases for Object#to_param at one place and avoid repitition
This commit is contained in:
parent
8426897086
commit
6bc7e27c19
|
@ -52,6 +52,14 @@ class ToSentenceTest < ActiveSupport::TestCase
|
|||
def test_with_blank_elements
|
||||
assert_equal ", one, , two, and three", [nil, 'one', '', 'two', 'three'].to_sentence
|
||||
end
|
||||
|
||||
def test_with_invalid_options
|
||||
exception = assert_raise ArgumentError do
|
||||
['one', 'two'].to_sentence(passing: 'invalid option')
|
||||
end
|
||||
|
||||
assert_equal exception.message, "Unknown key: :passing. Valid keys are: :words_connector, :two_words_connector, :last_word_connector, :locale"
|
||||
end
|
||||
end
|
||||
|
||||
class ToSTest < ActiveSupport::TestCase
|
||||
|
@ -187,25 +195,3 @@ class ToXmlTest < ActiveSupport::TestCase
|
|||
assert_equal({ skip_instruct: true }, options)
|
||||
end
|
||||
end
|
||||
|
||||
class ToParamTest < ActiveSupport::TestCase
|
||||
class ToParam < String
|
||||
def to_param
|
||||
"#{self}1"
|
||||
end
|
||||
end
|
||||
|
||||
def test_string_array
|
||||
assert_equal '', %w().to_param
|
||||
assert_equal 'hello/world', %w(hello world).to_param
|
||||
assert_equal 'hello/10', %w(hello 10).to_param
|
||||
end
|
||||
|
||||
def test_number_array
|
||||
assert_equal '10/20', [10, 20].to_param
|
||||
end
|
||||
|
||||
def test_to_param_array
|
||||
assert_equal 'custom1/param1', [ToParam.new('custom'), ToParam.new('param')].to_param
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,12 @@ 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
|
||||
|
@ -25,7 +31,7 @@ class ToParamTest < ActiveSupport::TestCase
|
|||
assert_equal "1/2/3/4", array.to_param
|
||||
|
||||
# Array of different objects
|
||||
array = [1, '3', { a: 1, b: 2 }, nil, true, false]
|
||||
assert_equal "1/3/a=1&b=2//true/false", array.to_param
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue