aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/testing/test_process.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2009-12-29 15:46:12 -0800
committerJeremy Kemper <jeremy@bitsweat.net>2009-12-29 15:46:12 -0800
commitb27a3e8da39484d8a02d3b9c1e4dc3cb60ddcce7 (patch)
tree372a4af6df43eb8bed19c11e55b2f70907d60507 /actionpack/lib/action_dispatch/testing/test_process.rb
parentada895e8cac855a2f248aafdb92457365f062d07 (diff)
parentb354496bda901cb0af499d6f3dff17a96a834a67 (diff)
downloadrails-b27a3e8da39484d8a02d3b9c1e4dc3cb60ddcce7.tar.gz
rails-b27a3e8da39484d8a02d3b9c1e4dc3cb60ddcce7.tar.bz2
rails-b27a3e8da39484d8a02d3b9c1e4dc3cb60ddcce7.zip
Merge branch 'master' of git://github.com/mikel/rails into mail
Conflicts: actionmailer/lib/action_mailer.rb
Diffstat (limited to 'actionpack/lib/action_dispatch/testing/test_process.rb')
-rw-r--r--actionpack/lib/action_dispatch/testing/test_process.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/testing/test_process.rb b/actionpack/lib/action_dispatch/testing/test_process.rb
new file mode 100644
index 0000000000..eae703e1b6
--- /dev/null
+++ b/actionpack/lib/action_dispatch/testing/test_process.rb
@@ -0,0 +1,42 @@
+module ActionDispatch
+ module TestProcess
+ def assigns(key = nil)
+ assigns = {}
+ @controller.instance_variable_names.each do |ivar|
+ next if ActionController::Base.protected_instance_variables.include?(ivar)
+ assigns[ivar[1..-1]] = @controller.instance_variable_get(ivar)
+ end
+
+ key.nil? ? assigns : assigns[key.to_s]
+ end
+
+ def session
+ @request.session
+ end
+
+ def flash
+ @request.flash
+ end
+
+ def cookies
+ @request.cookies.merge(@response.cookies)
+ end
+
+ def redirect_to_url
+ @response.redirect_url
+ end
+
+ # Shortcut for <tt>ARack::Test::UploadedFile.new(ActionController::TestCase.fixture_path + path, type)</tt>:
+ #
+ # post :change_avatar, :avatar => fixture_file_upload('/files/spongebob.png', 'image/png')
+ #
+ # To upload binary files on Windows, pass <tt>:binary</tt> as the last parameter.
+ # This will not affect other platforms:
+ #
+ # post :change_avatar, :avatar => fixture_file_upload('/files/spongebob.png', 'image/png', :binary)
+ def fixture_file_upload(path, mime_type = nil, binary = false)
+ fixture_path = ActionController::TestCase.send(:fixture_path) if ActionController::TestCase.respond_to?(:fixture_path)
+ Rack::Test::UploadedFile.new("#{fixture_path}#{path}", mime_type, binary)
+ end
+ end
+end