Skip to content

Commit 64c9360

Browse files
authored
Merge pull request rails#50584 from seanpdoyle/action-view-rendered-html-parser
Parse `ActionView::TestCase#rendered` as DocumentFragment
2 parents bed0b44 + bec8037 commit 64c9360

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

actionview/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* Parse `ActionView::TestCase#rendered` HTML content as `Nokogiri::XML::DocumentFragment` instead of `Nokogiri::XML::Document`
2+
3+
*Sean Doyle*
4+
15
* Rename `ActionView::TestCase::Behavior::{Content,RenderedViewContent}`
26

37
*Sean Doyle*

actionview/lib/action_view/test_case.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def include_helper_modules!
202202

203203
setup :setup_with_controller
204204

205-
register_parser :html, -> rendered { Rails::Dom::Testing.html_document.parse(rendered).root }
205+
register_parser :html, -> rendered { Rails::Dom::Testing.html_document_fragment.parse(rendered) }
206206
register_parser :json, -> rendered { JSON.parse(rendered, object_class: ActiveSupport::HashWithIndifferentAccess) }
207207

208208
ActiveSupport.run_load_hooks(:action_view_test_case, self)

actionview/test/template/test_case_test.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,12 +397,13 @@ class RenderedViewContentTest < ActionView::TestCase
397397
end
398398

399399
class HTMLParserTest < ActionView::TestCase
400-
test "rendered.html is a Nokogiri::XML::Element" do
400+
test "rendered.html is a Nokogiri::XML::DocumentFragment" do
401401
developer = DeveloperStruct.new("Eloy")
402402

403403
render "developers/developer", developer: developer
404404

405-
assert_kind_of Nokogiri::XML::Element, rendered.html
405+
assert_kind_of Nokogiri::XML::DocumentFragment, rendered.html
406+
assert_equal rendered.to_s, rendered.html.to_s
406407
assert_equal developer.name, document_root_element.text
407408
end
408409

@@ -425,6 +426,7 @@ class JSONParserTest < ActionView::TestCase
425426
render formats: :json, partial: "developers/developer", locals: { developer: developer }
426427

427428
assert_kind_of ActiveSupport::HashWithIndifferentAccess, rendered.json
429+
assert_equal rendered.to_s, rendered.json.to_json
428430
assert_equal developer.name, rendered.json[:name]
429431
end
430432
end

0 commit comments

Comments
 (0)