aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/abstract_unit.rb
diff options
context:
space:
mode:
authorMichael Lovitt <michael@lovitt.net>2010-06-27 14:35:31 -0400
committerJosé Valim <jose.valim@gmail.com>2010-06-27 22:39:06 +0200
commitebee77a28a7267d5f23a28ba23c1eb88a2d7d527 (patch)
treeba00fb81beaf2def53f357131606b23dcb01d7d6 /actionpack/test/abstract_unit.rb
parenta822ce78b39db60fef9d8c3280551f199c91c6b3 (diff)
downloadrails-ebee77a28a7267d5f23a28ba23c1eb88a2d7d527.tar.gz
rails-ebee77a28a7267d5f23a28ba23c1eb88a2d7d527.tar.bz2
rails-ebee77a28a7267d5f23a28ba23c1eb88a2d7d527.zip
Fixed that an ArgumentError is thrown when request.session_options[:id] is read in the following scenario: when the cookie store is used, and the session contains a serialized object of an unloaded class, and no session data accesses have occurred yet. Pushed the stale_session_check responsibility out of the SessionHash and down into the session store, closer to where the deserialization actually occurs. Added some test coverage for this case and others related to deserialization of unloaded types.
[#4938] Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionpack/test/abstract_unit.rb')
-rw-r--r--actionpack/test/abstract_unit.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index 84c5395610..2640e96453 100644
--- a/actionpack/test/abstract_unit.rb
+++ b/actionpack/test/abstract_unit.rb
@@ -202,6 +202,21 @@ class ActionController::IntegrationTest < ActiveSupport::TestCase
self.class.app = old_app
silence_warnings { Object.const_set(:SharedTestRoutes, old_routes) }
end
+
+ def with_autoload_path(path)
+ path = File.join(File.dirname(__FILE__), "fixtures", path)
+ if ActiveSupport::Dependencies.autoload_paths.include?(path)
+ yield
+ else
+ begin
+ ActiveSupport::Dependencies.autoload_paths << path
+ yield
+ ensure
+ ActiveSupport::Dependencies.autoload_paths.reject! {|p| p == path}
+ ActiveSupport::Dependencies.clear
+ end
+ end
+ end
end
# Temporary base class