}
+ text = "\"This is not a big problem,\" he said."
+ html = "\"This is not a big problem,\" he said."
+ assert_nothing_raised { assert_select "p", text }
+ assert_raise(Assertion) { assert_select "p", html }
+ assert_nothing_raised { assert_select "p", :html=>html }
+ assert_raise(Assertion) { assert_select "p", :html=>text }
+ assert_failure(/\A<#{text}> expected but was\n<#{html}>\.$/) { assert_select "p", :html=>text }
+ # No stripping for pre.
+ render_html %Q{
\n"This is not a big problem," he said.\n
}
+ text = "\n\"This is not a big problem,\" he said.\n"
+ html = "\n\"This is not a big problem,\" he said.\n"
+ assert_nothing_raised { assert_select "pre", text }
+ assert_raise(Assertion) { assert_select "pre", html }
+ assert_nothing_raised { assert_select "pre", :html=>html }
+ assert_raise(Assertion) { assert_select "pre", :html=>text }
+ end
+
+ def test_strip_textarea
+ render_html %Q{}
+ assert_select "textarea", "\nfoo\n"
+ render_html %Q{}
+ assert_select "textarea", "foo"
+ end
+
+ def test_counts
+ render_html %Q{
foo
foo
}
+ assert_nothing_raised { assert_select "div", 2 }
+ assert_failure(/\AExpected exactly 3 elements matching \"div\", found 2\.$/) do
+ assert_select "div", 3
+ end
+ assert_nothing_raised { assert_select "div", 1..2 }
+ assert_failure(/\AExpected 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_failure(/\AExpected exactly 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_failure(/\AExpected 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_failure(/\AExpected 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_failure(/\AExpected between 3 and 4 elements matching \"div\", found 2\.$/) do
+ assert_select "div", :minimum=>3, :maximum=>4
+ end
+ end
+
+ def test_substitution_values
+ render_html %Q{
foo
foo
}
+ assert_select "div:match('id', ?)", /\d+/ do |elements|
+ assert_equal 2, elements.size
+ end
+ assert_select "div" do
+ assert_select ":match('id', ?)", /\d+/ do |elements|
+ assert_equal 2, elements.size
+ assert_select "#1"
+ assert_select "#2"
+ end
+ end
+ end
+
+ def test_nested_assert_select
+ render_html %Q{
foo
foo
}
+ assert_select "div" do |elements|
+ assert_equal 2, elements.size
+ assert_select elements, "#1"
+ assert_select elements, "#2"
+ end
+ assert_select "div" do
+ assert_select "div" do |elements|
+ assert_equal 2, elements.size
+ # Testing in a group is one thing
+ assert_select "#1,#2"
+ # Testing individually is another.
+ assert_select "#1"
+ assert_select "#2"
+ assert_select "#3", false
+ end
+ end
+
+ assert_failure(/\AExpected at least 1 element matching \"#4\", found 0\.$/) do
+ assert_select "div" do
+ assert_select "#4"
+ end
+ end
+ end
+
+ def test_assert_select_text_match
+ render_html %Q{
}
+ assert_select "div:match('id', ?)", /\d+/ do |elements|
+ assert_equal 1, css_select(elements[0], "div").size
+ assert_equal 1, css_select(elements[1], "div").size
+ end
+ assert_select "div" do
+ assert_equal 2, css_select("div").size
+ css_select("div").each do |element|
+ # Testing as a group is one thing
+ assert !css_select("#1,#2").empty?
+ # Testing individually is another
+ assert !css_select("#1").empty?
+ assert !css_select("#2").empty?
+ end
+ end
+ end
+
+ def test_feed_item_encoded
+ render_xml <<-EOF
+
+
+
+
+ Test 1
+ ]]>
+
+
+
+
+ Test 2
+ ]]>
+
+
+
+
+EOF
+ assert_select "channel item description" do
+
+ assert_select_encoded do
+ assert_select "p", :count=>2, :text=>/Test/
+ end
+
+ # Test individually.
+ assert_select "description" do |elements|
+ assert_select_encoded elements[0] do
+ assert_select "p", "Test 1"
+ end
+ assert_select_encoded elements[1] do
+ assert_select "p", "Test 2"
+ end
+ end
+ end
+
+ # Test that we only un-encode element itself.
+ assert_select "channel item" do
+ assert_select_encoded do
+ assert_select "p", 0
+ end
+ end
+ end
+
+ #
+ # Test assert_select_email
+ #
+
+ def test_assert_select_email
+ assert_raise(Assertion) { assert_select_email {} }
+ AssertSelectMailer.test("
foo
bar
").deliver
+ assert_select_email do
+ assert_select "div:root" do
+ assert_select "p:first-child", "foo"
+ assert_select "p:last-child", "bar"
+ end
+ end
+ end
+
+ def test_assert_select_email_multipart
+ AssertMultipartSelectMailer.test(:html => "
foo
bar
", :text => 'foo bar').deliver
+ assert_select_email do
+ assert_select "div:root" do
+ assert_select "p:first-child", "foo"
+ assert_select "p:last-child", "bar"
+ end
+ end
+ end
+
+ protected
+ def render_html(html)
+ @controller.response_with = html
+ get :html
+ end
+
+ def render_xml(xml)
+ @controller.response_with = xml
+ get :xml
+ end
+end
diff --git a/actionview/test/template/url_helper_test.rb b/actionview/test/template/url_helper_test.rb
index 35279a4558..f04532c77c 100644
--- a/actionview/test/template/url_helper_test.rb
+++ b/actionview/test/template/url_helper_test.rb
@@ -25,7 +25,7 @@ class UrlHelperTest < ActiveSupport::TestCase
include routes.url_helpers
include ActionView::Helpers::JavaScriptHelper
- include ActionDispatch::Assertions::DomAssertions
+ include ActionView::Assertions::DomAssertions
include ActionView::Context
include RenderERBUtils
--
cgit v1.2.3