assert_select
and css_select
call this to obtain the content in the HTML page,
or from all the RJS statements, depending on the type of response.
# File actionpack/lib/action_dispatch/testing/assertions/selector.rb, line 604
def response_from_page_or_rjs()
content_type = @response.content_type
if content_type && Mime::JS =~ content_type
body = @response.body.dup
root = HTML::Node.new(nil)
while true
next if body.sub!(RJS_STATEMENTS[:any]) do |match|
html = unescape_rjs(match)
matches = HTML::Document.new(html).root.children.select { |n| n.tag? }
root.children.concat matches
""
end
break
end
root
else
html_document.root
end
end