diff options
author | Boris Peterbarg <boris@seekingalpha.com> | 2015-03-15 17:35:58 +0200 |
---|---|---|
committer | Boris Peterbarg <boris@seekingalpha.com> | 2015-03-16 06:35:00 +0200 |
commit | 4be3997c9f317e4295421d31204a31962206b55c (patch) | |
tree | 7c7852c1afbcc3bd6305962184444bf9316cfde4 /actionpack | |
parent | a5a4b56029f1a83cfc81852f8ca76f9161abcbaa (diff) | |
download | rails-4be3997c9f317e4295421d31204a31962206b55c.tar.gz rails-4be3997c9f317e4295421d31204a31962206b55c.tar.bz2 rails-4be3997c9f317e4295421d31204a31962206b55c.zip |
Compare content_type with Mime::XML instead of regexp
Regexp is broken for both content types including charsets and for
integration tests, where the content_type is a Mime::Type and not String
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/testing/assertions.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/integration_test.rb | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/testing/assertions.rb b/actionpack/lib/action_dispatch/testing/assertions.rb index f325c35b57..21b3b89d22 100644 --- a/actionpack/lib/action_dispatch/testing/assertions.rb +++ b/actionpack/lib/action_dispatch/testing/assertions.rb @@ -12,7 +12,7 @@ module ActionDispatch include Rails::Dom::Testing::Assertions def html_document - @html_document ||= if @response.content_type =~ /xml$/ + @html_document ||= if @response.content_type === Mime::XML Nokogiri::XML::Document.parse(@response.body) else Nokogiri::HTML::Document.parse(@response.body) diff --git a/actionpack/test/controller/integration_test.rb b/actionpack/test/controller/integration_test.rb index 9504914dba..f0d92eb427 100644 --- a/actionpack/test/controller/integration_test.rb +++ b/actionpack/test/controller/integration_test.rb @@ -363,6 +363,7 @@ class IntegrationProcessTest < ActionDispatch::IntegrationTest respond_to do |format| format.html { render :text => "OK", :status => 200 } format.js { render :text => "JS OK", :status => 200 } + format.xml { render :xml => "<root></root>", :status => 200 } end end @@ -419,6 +420,22 @@ class IntegrationProcessTest < ActionDispatch::IntegrationTest end end + def test_get_xml + with_test_route_set do + get "/get", {}, {"HTTP_ACCEPT" => "application/xml"} + assert_equal 200, status + assert_equal "OK", status_message + assert_response 200 + assert_response :success + assert_response :ok + assert_equal({}, cookies.to_hash) + assert_equal "<root></root>", body + assert_equal "<root></root>", response.body + assert_instance_of Nokogiri::XML::Document, html_document + assert_equal 1, request_count + end + end + def test_post with_test_route_set do post '/post' |