Skip to content

Commit

Permalink
Merge pull request #16336 from akshay-vishnoi/fix-tests
Browse files Browse the repository at this point in the history
Add missing test case for Array#to_sentence, collect all test cases for Object#to_param at one place and avoid repitition
  • Loading branch information
rafaelfranca committed Jul 29, 2014
2 parents 8426897 + 6bc7e27 commit d035124
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 24 deletions.
30 changes: 8 additions & 22 deletions activesupport/test/core_ext/array/conversions_test.rb
Expand Up @@ -52,6 +52,14 @@ def test_does_not_modify_given_hash
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
Expand Down Expand Up @@ -187,25 +195,3 @@ def test_to_xml_dups_options
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
10 changes: 8 additions & 2 deletions activesupport/test/core_ext/object/to_param_test.rb
Expand Up @@ -2,6 +2,12 @@
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
Expand All @@ -25,7 +31,7 @@ def test_array
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

0 comments on commit d035124

Please sign in to comment.