aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-12-20 19:21:41 +1030
committerMatthew Draper <matthew@trebex.net>2016-12-20 19:21:41 +1030
commit86f77894803a6b2dc79d611fa9b51ebc67f1263b (patch)
treec9da0d832d25ae268e98ffc018fddc2b864489d3 /actionpack/test
parent3582f58a7558dc0ddb3051b9deb5354aee378b5b (diff)
downloadrails-86f77894803a6b2dc79d611fa9b51ebc67f1263b.tar.gz
rails-86f77894803a6b2dc79d611fa9b51ebc67f1263b.tar.bz2
rails-86f77894803a6b2dc79d611fa9b51ebc67f1263b.zip
Revise the "XML is not HTML" test
It was depending on a side-effect of the old html-scanner, so was no longer proving what it intended to. Instead, assert more directly about the resulting observable difference.
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/test_case_test.rb24
1 files changed, 12 insertions, 12 deletions
diff --git a/actionpack/test/controller/test_case_test.rb b/actionpack/test/controller/test_case_test.rb
index 05aa4ff6ad..874f9c3c42 100644
--- a/actionpack/test/controller/test_case_test.rb
+++ b/actionpack/test/controller/test_case_test.rb
@@ -100,11 +100,11 @@ HTML
end
def test_xml_output
- response.content_type = "application/xml"
+ response.content_type = params[:response_as]
render plain: <<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>
+ <area><p>area is an empty tag in HTML, so it won't contain this content</p></area>
</root>
XML
end
@@ -374,18 +374,18 @@ XML
assert_equal "OK", @response.body
end
- def test_should_not_impose_childless_html_tags_in_xml
- process :test_xml_output
+ def test_should_impose_childless_html_tags_in_html
+ process :test_xml_output, params: { response_as: "text/html" }
- 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
+ # <area> auto-closes, so the <p> becomes a sibling
+ assert_select "root > area + p"
+ end
+
+ def test_should_not_impose_childless_html_tags_in_xml
+ process :test_xml_output, params: { response_as: "application/xml" }
- assert err.empty?, err.inspect
+ # <area> is not special, so the <p> is its child
+ assert_select "root > area > p"
end
def test_assert_generates