diff options
author | Juanjo Bazan <jjbazan@gmail.com> | 2010-03-30 23:18:44 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2010-03-30 15:25:38 -0700 |
commit | 7212c29802e34fe7368d5b484a479c31fad49c5d (patch) | |
tree | a87c73b2ce0ae98efe7e1453d6e24671f388bb88 | |
parent | 772a0226fdbedcc16432e1fb42552678f282e973 (diff) | |
download | rails-7212c29802e34fe7368d5b484a479c31fad49c5d.tar.gz rails-7212c29802e34fe7368d5b484a479c31fad49c5d.tar.bz2 rails-7212c29802e34fe7368d5b484a479c31fad49c5d.zip |
new assertion: assert_blank
Signed-off-by: Xavier Noria <fxn@hashref.com>
-rw-r--r-- | activesupport/lib/active_support/testing/assertions.rb | 7 | ||||
-rw-r--r-- | activesupport/test/test_test.rb | 28 |
2 files changed, 35 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/testing/assertions.rb b/activesupport/lib/active_support/testing/assertions.rb index c529b92240..30a22fcc0e 100644 --- a/activesupport/lib/active_support/testing/assertions.rb +++ b/activesupport/lib/active_support/testing/assertions.rb @@ -62,6 +62,13 @@ module ActiveSupport def assert_no_difference(expression, message = nil, &block) assert_difference expression, 0, message, &block end + + # Test if an expression is blank. Passes if object.blank? is true. + # + # assert_blank [] # => true + def assert_blank(object) + assert object.blank?, "#{object.inspect} is not blank" + end end end end diff --git a/activesupport/test/test_test.rb b/activesupport/test/test_test.rb index 1928da51ca..390670570d 100644 --- a/activesupport/test/test_test.rb +++ b/activesupport/test/test_test.rb @@ -86,6 +86,34 @@ class AssertDifferenceTest < ActiveSupport::TestCase end end +class EmptyTrue + def empty?() true; end +end + +class EmptyFalse + def empty?() false; end +end + +class AssertBlankTest < ActiveSupport::TestCase + BLANK = [ EmptyTrue.new, nil, false, '', ' ', " \n\t \r ", [], {} ] + NOT_BLANK = [ EmptyFalse.new, Object.new, true, 0, 1, 'j', [nil], { nil => 0 } ] + + def test_assert_blank_true + BLANK.each { |v| assert_blank v } + end + + def test_assert_blank_false + NOT_BLANK.each { |v| + begin + assert_blank v + fail 'should not get to here' + rescue Exception => e + assert_match(/is not blank/, e.message) + end + } + end +end + # These should always pass if ActiveSupport::Testing.const_defined?(:Default) class NotTestingThingsTest < Test::Unit::TestCase |