aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_controller/integration.rb13
-rw-r--r--actionpack/test/controller/integration_test.rb12
3 files changed, 15 insertions, 12 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index a7fa597c89..0aaa1a51f2 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Integration tests: get_ and post_via_redirect take a headers hash. #9130 [simonjefford]
+
* Simplfy #view_paths implementation. ActionView templates get the exact object, not a dup. [Rick]
* Update tests for ActiveSupport's JSON escaping change. [rick]
diff --git a/actionpack/lib/action_controller/integration.rb b/actionpack/lib/action_controller/integration.rb
index 26f6126120..d8a310e0ba 100644
--- a/actionpack/lib/action_controller/integration.rb
+++ b/actionpack/lib/action_controller/integration.rb
@@ -124,17 +124,18 @@ module ActionController
# Performs a GET request, following any subsequent redirect. Note that
# the redirects are followed until the response is not a redirect--this
# means you may run into an infinite loop if your redirect loops back to
- # itself.
- def get_via_redirect(path, args={})
- get path, args
+ # itself. Headers are treated in the same way as #get.
+ def get_via_redirect(path, args={}, headers = {})
+ get path, args, headers
follow_redirect! while redirect?
status
end
# Performs a POST request, following any subsequent redirect. This is
- # vulnerable to infinite loops, the same as #get_via_redirect.
- def post_via_redirect(path, args={})
- post path, args
+ # vulnerable to infinite loops, the same as #get_via_redirect. Headers are
+ # treated in the same way as #get.
+ def post_via_redirect(path, args={}, headers = {})
+ post path, args, headers
follow_redirect! while redirect?
status
end
diff --git a/actionpack/test/controller/integration_test.rb b/actionpack/test/controller/integration_test.rb
index cf40d3462c..00269ca3b8 100644
--- a/actionpack/test/controller/integration_test.rb
+++ b/actionpack/test/controller/integration_test.rb
@@ -50,27 +50,27 @@ class SessionTest < Test::Unit::TestCase
end
def test_get_via_redirect
- path = "/somepath"; args = {:id => '1'}
+ path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue" }
- @session.expects(:get).with(path,args)
+ @session.expects(:get).with(path,args,headers)
@session.stubs(:redirect?).returns(true, true, false)
@session.expects(:follow_redirect!).times(2)
@session.stubs(:status).returns(200)
- assert_equal 200, @session.get_via_redirect(path, args)
+ assert_equal 200, @session.get_via_redirect(path, args, headers)
end
def test_post_via_redirect
- path = "/somepath"; args = {:id => '1'}
+ path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue" }
- @session.expects(:post).with(path,args)
+ @session.expects(:post).with(path,args,headers)
@session.stubs(:redirect?).returns(true, true, false)
@session.expects(:follow_redirect!).times(2)
@session.stubs(:status).returns(200)
- assert_equal 200, @session.post_via_redirect(path, args)
+ assert_equal 200, @session.post_via_redirect(path, args, headers)
end
def test_url_for_with_controller