Fri Aug 10 09:55:40 EST 2007 Matt Palmer * Trim out some extra fluff, and add some nested failure tests diff -rN -u old-testsuite/lib/hpricot_test_helper.rb new-testsuite/lib/hpricot_test_helper.rb --- old-testsuite/lib/hpricot_test_helper.rb 2008-10-20 23:31:06.455881313 +1100 +++ new-testsuite/lib/hpricot_test_helper.rb 2008-10-20 23:31:06.463856820 +1100 @@ -98,21 +98,12 @@ message || "Expected at most #{equality[:maximum]} elements matching \"#{css_query}\", found #{els.size}") end - ret = true - if block && !els.empty? - ret &&= self.dup.instance_eval do + if block + self.dup.instance_eval do @output = HpricotTestHelper::DocumentOutput.new(els.inner_html) - @block = true yield els end end - - if(equality[:count] != 0) - assert ret, "#{ message } \"#{ css_query }\" with \"#{ equality.inspect }\" was not found." - else - assert ret, "#{ message } \"#{ css_query }\" with \"#{ equality.reject{|k,v| k == :count}.inspect }\" was found, but you specified :count => 0." - end - ret end # small utility class for working with diff -rN -u old-testsuite/test/assert_elements_test.rb new-testsuite/test/assert_elements_test.rb --- old-testsuite/test/assert_elements_test.rb 2008-10-20 23:31:06.455881313 +1100 +++ new-testsuite/test/assert_elements_test.rb 2008-10-20 23:31:06.463856820 +1100 @@ -215,6 +215,20 @@ end end + def test_nested_elements_failure + render_html %Q{
} + assert_elements "div" do + assert_failure(/Expected at least 1 element matching "span", found 0/) { assert_elements "span" } + end + end + + def test_nested_elements_failure_with_xpath + render_html %Q{
} + assert_elements "//div" do + assert_failure(/Expected at least 1 element matching "\/\/span", found 0/) { assert_elements "//span" } + end + end + protected def render_html(html) @controller.response_with = html