aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Chelimsky <dchelimsky@gmail.com>2010-04-17 14:52:37 -0500
committerwycats <wycats@gmail.com>2010-04-17 15:59:10 -0400
commit4327ad51abfddde822766702d154df11bd5b47a3 (patch)
tree387edf55bcc5241e02f2764d14691e3b285f1d1c
parentd4d352bf94f8d2b6fc5684706ed2b33da77203fd (diff)
downloadrails-4327ad51abfddde822766702d154df11bd5b47a3.tar.gz
rails-4327ad51abfddde822766702d154df11bd5b47a3.tar.bz2
rails-4327ad51abfddde822766702d154df11bd5b47a3.zip
access assigns as a method or hash, with strings or symbols [#4431 state:resolved]
-rw-r--r--actionpack/lib/action_dispatch/testing/test_process.rb4
-rw-r--r--actionpack/test/controller/test_test.rb16
2 files changed, 18 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/testing/test_process.rb b/actionpack/lib/action_dispatch/testing/test_process.rb
index d4eecac2de..79f309cae7 100644
--- a/actionpack/lib/action_dispatch/testing/test_process.rb
+++ b/actionpack/lib/action_dispatch/testing/test_process.rb
@@ -3,13 +3,13 @@ require 'action_dispatch/middleware/flash'
module ActionDispatch
module TestProcess
def assigns(key = nil)
- assigns = {}
+ assigns = {}.with_indifferent_access
@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]
+ key.nil? ? assigns : assigns[key]
end
def session
diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb
index 6f1ce2fef7..f9fc7a0976 100644
--- a/actionpack/test/controller/test_test.rb
+++ b/actionpack/test/controller/test_test.rb
@@ -113,6 +113,11 @@ XML
render :nothing => true
end
+ def test_assigns
+ @foo = "foo"
+ render :nothing => true
+ end
+
private
def rescue_action(e)
raise e
@@ -230,6 +235,17 @@ XML
assert_equal "OK", @response.body
end
+ def test_assigns
+ process :test_assigns
+ # assigns can be accessed using assigns(key)
+ # or assigns[key], where key is a string or
+ # a symbol
+ assert_equal "foo", assigns(:foo)
+ assert_equal "foo", assigns("foo")
+ assert_equal "foo", assigns[:foo]
+ assert_equal "foo", assigns["foo"]
+ end
+
def test_assert_tag_tag
process :test_html_output