mirror of
https://github.com/github/rails.git
synced 2026-04-04 03:00:58 -04:00
Fix assert_select for XML documents. Closes #8173. [dasil003]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7417 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -449,7 +449,8 @@ module ActionController #:nodoc:
|
||||
end
|
||||
|
||||
def html_document
|
||||
@html_document ||= HTML::Document.new(@response.body)
|
||||
xml = @response.content_type =~ /xml$/
|
||||
@html_document ||= HTML::Document.new(@response.body, false, xml)
|
||||
end
|
||||
|
||||
def find_tag(conditions)
|
||||
|
||||
@@ -45,6 +45,16 @@ class TestTest < Test::Unit::TestCase
|
||||
</html>
|
||||
HTML
|
||||
end
|
||||
|
||||
def test_xml_output
|
||||
response.content_type = "application/xml"
|
||||
render :text => <<XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<area>area is an empty tag in HTML, raising an error if not in xml mode</area>
|
||||
</root>
|
||||
XML
|
||||
end
|
||||
|
||||
def test_only_one_param
|
||||
render :text => (params[:left] && params[:right]) ? "EEP, Both here!" : "OK"
|
||||
@@ -301,6 +311,20 @@ HTML
|
||||
:children => { :count => 1,
|
||||
:only => { :tag => "img" } } } }
|
||||
end
|
||||
|
||||
def test_should_not_impose_childless_html_tags_in_xml
|
||||
process :test_xml_output
|
||||
|
||||
begin
|
||||
$stderr = StringIO.new
|
||||
assert_select 'area' #This will cause a warning if content is processed as HTML
|
||||
$stderr.rewind && err = $stderr.read
|
||||
ensure
|
||||
$stderr = STDERR
|
||||
end
|
||||
|
||||
assert err.empty?
|
||||
end
|
||||
|
||||
def test_assert_tag_attribute_matching
|
||||
@response.body = '<input type="text" name="my_name">'
|
||||
|
||||
Reference in New Issue
Block a user