From 4b72a4b12fbb33d32ae3f9b9d004ca5888d42d58 Mon Sep 17 00:00:00 2001 From: Sam Stephenson Date: Thu, 13 Oct 2005 18:09:27 +0000 Subject: Unset the X-Requested-With header when using the xhr wrapper in functional tests. Closes #2352. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2551 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_controller/test_process.rb | 4 +++- actionpack/test/controller/test_test.rb | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index de55a929ad..7c9251dce7 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Unset the X-Requested-With header when using the xhr wrapper in functional tests so that future requests aren't accidentally xhr'ed #2352 [me@julik.nl, Sam Stephenson] + * Unescape paths before writing cache to file system. #1877. [Damien Pollet] * Wrap javascript_tag contents in a CDATA section and add a cdata_section method to TagHelper #1691 [Michael Schuerig, Sam Stephenson] diff --git a/actionpack/lib/action_controller/test_process.rb b/actionpack/lib/action_controller/test_process.rb index 783d21ff53..f7b4280d2e 100644 --- a/actionpack/lib/action_controller/test_process.rb +++ b/actionpack/lib/action_controller/test_process.rb @@ -303,7 +303,9 @@ module Test def xml_http_request(request_method, action, parameters = nil, session = nil, flash = nil) @request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest' - self.send(request_method, action, parameters, session, flash) + returning self.send(request_method, action, parameters, session, flash) do + @request.env.delete 'HTTP_X_REQUESTED_WITH' + end end alias xhr :xml_http_request diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb index 991184f37e..20fa9d60b2 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -305,6 +305,11 @@ HTML assert_equal "192.0.0.1", @response.body end + def test_header_properly_reset_after_remote_http_request + xhr :get, :test_params + assert_nil @request.env['HTTP_X_REQUESTED_WITH'] + end + %w(controller response request).each do |variable| %w(get post put delete head process).each do |method| define_method("test_#{variable}_missing_for_#{method}_raises_error") do -- cgit v1.2.3