diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2005-11-20 04:41:59 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2005-11-20 04:41:59 +0000 |
commit | cd8686b45639365ac3af87ddd82254fdc19ec414 (patch) | |
tree | 380fd7fd766b8b1cd3c0b17a62e4f3c6b0f9bc4d /actionpack/test/controller/active_record_store_test.rb | |
parent | 9b9578fa4799f911edbc01ae5b7d30ee874812a0 (diff) | |
download | rails-cd8686b45639365ac3af87ddd82254fdc19ec414.tar.gz rails-cd8686b45639365ac3af87ddd82254fdc19ec414.tar.bz2 rails-cd8686b45639365ac3af87ddd82254fdc19ec414.zip |
r3173@asus: jeremy | 2005-11-18 23:34:41 -0800
Ticket 2731 - sessions
r3185@asus: jeremy | 2005-11-19 18:02:51 -0800
eliminate const redefinition warning
r3186@asus: jeremy | 2005-11-19 19:25:50 -0800
Use :database option instead of :dbfile
r3187@asus: jeremy | 2005-11-19 19:34:31 -0800
Data writer assigns to instance var. Since nothing is calling write_attribute on the data column except for marshal_data, simplify data reader to lazy-unmarshal the data column (no worrying whether it's already unmarshaled)
r3188@asus: jeremy | 2005-11-19 19:35:40 -0800
Explicitly create the session class so that subsequent requests for the session can find it in the database. This is masking a problem with the controller losing its @session instance var and therefore requesting a new session.
r3189@asus: jeremy | 2005-11-19 19:36:40 -0800
Using create unnecessarily broadens the existing duck-typing so use new + save instead.
r3194@asus: jeremy | 2005-11-19 20:28:17 -0800
Test creation of another instance while first instance is still active. Should return same session_id.
r3195@asus: jeremy | 2005-11-19 20:39:45 -0800
Always create new AR sessions rather than trying too hard to avoid database traffic. References #2731.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3100 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/controller/active_record_store_test.rb')
-rw-r--r-- | actionpack/test/controller/active_record_store_test.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/actionpack/test/controller/active_record_store_test.rb b/actionpack/test/controller/active_record_store_test.rb index 5c612865c3..2038a80119 100644 --- a/actionpack/test/controller/active_record_store_test.rb +++ b/actionpack/test/controller/active_record_store_test.rb @@ -15,12 +15,12 @@ require 'action_controller/session/active_record_store' #ActiveRecord::Base.logger = Logger.new($stdout) begin - CGI::Session::ActiveRecordStore::Session.establish_connection(:adapter => 'sqlite3', :dbfile => ':memory:') + CGI::Session::ActiveRecordStore::Session.establish_connection(:adapter => 'sqlite3', :database => ':memory:') CGI::Session::ActiveRecordStore::Session.connection rescue Object $stderr.puts 'SQLite 3 unavailable; falling back to SQLite 2.' begin - CGI::Session::ActiveRecordStore::Session.establish_connection(:adapter => 'sqlite', :dbfile => ':memory:') + CGI::Session::ActiveRecordStore::Session.establish_connection(:adapter => 'sqlite', :database => ':memory:') CGI::Session::ActiveRecordStore::Session.connection rescue Object $stderr.puts 'SQLite 2 unavailable; skipping ActiveRecordStore test suite.' @@ -68,10 +68,16 @@ class ActiveRecordStoreTest < Test::Unit::TestCase ENV['REQUEST_METHOD'] = 'GET' CGI::Session::ActiveRecordStore.session_class = session_class - @new_session = CGI::Session.new(CGI.new, 'database_manager' => CGI::Session::ActiveRecordStore, 'new_session' => true) + @cgi = CGI.new + @new_session = CGI::Session.new(@cgi, 'database_manager' => CGI::Session::ActiveRecordStore, 'new_session' => true) @new_session['foo'] = 'bar' end + def test_another_instance + @another = CGI::Session.new(@cgi, 'session_id' => @new_session.session_id, 'database_manager' => CGI::Session::ActiveRecordStore) + assert_equal @new_session.session_id, @another.session_id + end + def test_model_attribute assert_kind_of CGI::Session::ActiveRecordStore::Session, @new_session.model assert_equal({ 'foo' => 'bar' }, @new_session.model.data) |