From f756bfbe89da504729a1e59d1cbfc4044257057d Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 2 Feb 2008 05:37:22 +0000 Subject: [PATCH] Merge r8782 from trunk: TestSession supports indifferent access. References #7372. git-svn-id: http://svn-commit.rubyonrails.org/rails/branches/1-2-stable@8784 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 6 +++++ .../lib/action_controller/test_process.rb | 6 ++--- actionpack/test/controller/test_test.rb | 26 +++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 463eefc9614b0..485e5b8c5d0dc 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,9 +1,15 @@ +*SVN* + +* TestSession supports indifferent access. #7372 [tamc, Arsen7, mhackett, julik, jean.helou] + + *1.13.6* (November 24th, 2007) * Correct Broken Fix for session_fixation attacks * Ensure that cookies handle array values correctly. Closes #9937 [queso] + *1.13.5* (October 12th, 2007) * Backport: allow array and hash query parameters. Array route parameters are converted/to/a/path as before. #6765, #7047, #7462 [bgipsy, Jeremy McAnally, Dan Kubb, brendan, Diego Algorta Casamayou] diff --git a/actionpack/lib/action_controller/test_process.rb b/actionpack/lib/action_controller/test_process.rb index 79eb0e10de689..00f2d54d72039 100644 --- a/actionpack/lib/action_controller/test_process.rb +++ b/actionpack/lib/action_controller/test_process.rb @@ -282,7 +282,7 @@ class TestSession #:nodoc: def initialize(attributes = nil) @session_id = '' - @attributes = attributes + @attributes = attributes.nil? ? nil : attributes.stringify_keys @saved_attributes = nil end @@ -291,11 +291,11 @@ def data 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 a8acd51272721..94abff81280b7 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -3,11 +3,21 @@ class TestTest < Test::Unit::TestCase class TestController < ActionController::Base + def no_op + render :text => 'dummy' + end + def set_flash flash["test"] = ">#{flash["test"]}<" 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 +121,22 @@ def test_process_with_flash 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_session_arg + process :no_op, nil, { 'string' => 'value1', :symbol => 'value2' } + assert_equal 'value1', session['string'] + assert_equal 'value1', session[:string] + assert_equal 'value2', session['symbol'] + assert_equal 'value2', session[:symbol] + end + def test_process_with_request_uri_with_no_params process :test_uri assert_equal "/test_test/test/test_uri", @response.body