aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_controller/test_process.rb4
-rw-r--r--actionpack/test/controller/test_test.rb14
3 files changed, 18 insertions, 2 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 70a4c8dbd0..a4385088a9 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* TestSession supports indifferent access so session['foo'] == session[:foo] in your tests. #7372 [julik, jean.helou]
+
* Allow Routes to generate all urls for a set of options by specifying :generate_all => true. Allows caching to properly set or expire all paths for a resource. References #1739. [Nicholas Seckar]
* Change the query parser to map empty GET params to "" rather than nil. Closes #5694. [Nicholas Seckar]
diff --git a/actionpack/lib/action_controller/test_process.rb b/actionpack/lib/action_controller/test_process.rb
index beccec6f94..1c319418b6 100644
--- a/actionpack/lib/action_controller/test_process.rb
+++ b/actionpack/lib/action_controller/test_process.rb
@@ -292,11 +292,11 @@ module ActionController #:nodoc:
end
def [](key)
- data[key]
+ data[key.to_s]
end
def []=(key, value)
- data[key] = value
+ data[key.to_s] = value
end
def update
diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb
index ab44fbf3ca..4232863cdc 100644
--- a/actionpack/test/controller/test_test.rb
+++ b/actionpack/test/controller/test_test.rb
@@ -8,6 +8,12 @@ class TestTest < Test::Unit::TestCase
render :text => 'ignore me'
end
+ def set_session
+ session['string'] = 'A wonder'
+ session[:symbol] = 'it works'
+ render :text => 'Success'
+ end
+
def render_raw_post
raise Test::Unit::AssertionFailedError, "#raw_post is blank" if request.raw_post.blank?
render :text => request.raw_post
@@ -111,6 +117,14 @@ HTML
assert_equal '>value<', flash['test']
end
+ def test_process_with_session
+ process :set_session
+ assert_equal 'A wonder', session['string'], "A value stored in the session should be available by string key"
+ assert_equal 'A wonder', session[:string], "Test session hash should allow indifferent access"
+ assert_equal 'it works', session['symbol'], "Test session hash should allow indifferent access"
+ assert_equal 'it works', session[:symbol], "Test session hash should allow indifferent access"
+ end
+
def test_process_with_request_uri_with_no_params
process :test_uri
assert_equal "/test_test/test/test_uri", @response.body