aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller
diff options
context:
space:
mode:
authorMarcel Molina <marcel@vernix.org>2007-05-26 17:25:19 +0000
committerMarcel Molina <marcel@vernix.org>2007-05-26 17:25:19 +0000
commitdc4d23f2d736a81be36edb0abf42774634741bf3 (patch)
tree54635d041211c455563034bc85c440a9ed232c83 /actionpack/test/controller
parent33e96f3cb39401a576f5d1bd0584a61223a266b8 (diff)
downloadrails-dc4d23f2d736a81be36edb0abf42774634741bf3.tar.gz
rails-dc4d23f2d736a81be36edb0abf42774634741bf3.tar.bz2
rails-dc4d23f2d736a81be36edb0abf42774634741bf3.zip
Make assert_select's failure messages clearer about what failed. #7779 [dchelimsky]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6860 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r--actionpack/test/controller/assert_select_test.rb43
1 files changed, 33 insertions, 10 deletions
diff --git a/actionpack/test/controller/assert_select_test.rb b/actionpack/test/controller/assert_select_test.rb
index f3b525ab92..36075a0871 100644
--- a/actionpack/test/controller/assert_select_test.rb
+++ b/actionpack/test/controller/assert_select_test.rb
@@ -73,7 +73,12 @@ class AssertSelectTest < Test::Unit::TestCase
def teardown
ActionMailer::Base.deliveries.clear
end
-
+
+ def assert_failure(message, &block)
+ e = assert_raises(AssertionFailedError, &block)
+ assert_match(message, e.message) if Regexp === message
+ assert_equal(message, e.message) if String === message
+ end
#
# Test assert select.
@@ -82,8 +87,8 @@ class AssertSelectTest < Test::Unit::TestCase
def test_assert_select
render_html %Q{<div id="1"></div><div id="2"></div>}
assert_select "div", 2
- assert_raises(AssertionFailedError) { assert_select "div", 3 }
- assert_raises(AssertionFailedError){ assert_select "p" }
+ assert_failure(/Expected at least 3 elements matching \"div\", found 2/) { assert_select "div", 3 }
+ assert_failure(/Expected at least 1 element matching \"p\", found 0/) { assert_select "p" }
end
@@ -131,22 +136,34 @@ class AssertSelectTest < Test::Unit::TestCase
end
- def test_equality_of_instances
+ def test_counts
render_html %Q{<div id="1">foo</div><div id="2">foo</div>}
assert_nothing_raised { assert_select "div", 2 }
- assert_raises(AssertionFailedError) { assert_select "div", 3 }
+ assert_failure(/Expected at least 3 elements matching \"div\", found 2/) do
+ assert_select "div", 3
+ end
assert_nothing_raised { assert_select "div", 1..2 }
- assert_raises(AssertionFailedError) { assert_select "div", 3..4 }
+ assert_failure(/Expected between 3 and 4 elements matching \"div\", found 2/) do
+ assert_select "div", 3..4
+ end
assert_nothing_raised { assert_select "div", :count=>2 }
- assert_raises(AssertionFailedError) { assert_select "div", :count=>3 }
+ assert_failure(/Expected at least 3 elements matching \"div\", found 2/) do
+ assert_select "div", :count=>3
+ end
assert_nothing_raised { assert_select "div", :minimum=>1 }
assert_nothing_raised { assert_select "div", :minimum=>2 }
- assert_raises(AssertionFailedError) { assert_select "div", :minimum=>3 }
+ assert_failure(/Expected at least 3 elements matching \"div\", found 2/) do
+ assert_select "div", :minimum=>3
+ end
assert_nothing_raised { assert_select "div", :maximum=>2 }
assert_nothing_raised { assert_select "div", :maximum=>3 }
- assert_raises(AssertionFailedError) { assert_select "div", :maximum=>1 }
+ assert_failure(/Expected at most 1 element matching \"div\", found 2/) do
+ assert_select "div", :maximum=>1
+ end
assert_nothing_raised { assert_select "div", :minimum=>1, :maximum=>2 }
- assert_raises(AssertionFailedError) { assert_select "div", :minimum=>3, :maximum=>4 }
+ assert_failure(/Expected between 3 and 4 elements matching \"div\", found 2/) do
+ assert_select "div", :minimum=>3, :maximum=>4
+ end
end
@@ -183,6 +200,12 @@ class AssertSelectTest < Test::Unit::TestCase
assert_select "#3", false
end
end
+
+ assert_failure(/Expected at least 1 element matching \"#4\", found 0\./) do
+ assert_select "div" do
+ assert_select "#4"
+ end
+ end
end