aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/active_record_store_test.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-07-05 02:29:37 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-07-05 02:29:37 +0000
commited12b0cac0bda6cda7a7c3c9a5c741fe1bebcc08 (patch)
tree48885a2c50ac1051899ddc89a17e8422d9d0b578 /actionpack/test/controller/active_record_store_test.rb
parent47b1aa8025d298362f695553d7187689efeedb57 (diff)
downloadrails-ed12b0cac0bda6cda7a7c3c9a5c741fe1bebcc08.tar.gz
rails-ed12b0cac0bda6cda7a7c3c9a5c741fe1bebcc08.tar.bz2
rails-ed12b0cac0bda6cda7a7c3c9a5c741fe1bebcc08.zip
r2836@asus: jeremy | 2005-07-05 00:33:12 -0700
Test sessid backward compatibility. DRY up the test classes. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1692 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.rb64
1 files changed, 30 insertions, 34 deletions
diff --git a/actionpack/test/controller/active_record_store_test.rb b/actionpack/test/controller/active_record_store_test.rb
index 34b7448417..cc7f23bed5 100644
--- a/actionpack/test/controller/active_record_store_test.rb
+++ b/actionpack/test/controller/active_record_store_test.rb
@@ -23,25 +23,7 @@ rescue Object
end
-class ActiveRecordStoreTest < Test::Unit::TestCase
- def session_class
- CGI::Session::ActiveRecordStore::Session
- end
-
- def setup
- session_class.create_table!
-
- 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)
- @new_session['foo'] = 'bar'
- end
-
- def teardown
- session_class.drop_table!
- end
-
+module CommonActiveRecordStoreTests
def test_basics
s = session_class.new(:session_id => '1234', :data => { 'foo' => 'bar' })
assert_equal 'bar', s.data['foo']
@@ -60,14 +42,14 @@ class ActiveRecordStoreTest < Test::Unit::TestCase
end
end
+class ActiveRecordStoreTest < Test::Unit::TestCase
+ include CommonActiveRecordStoreTests
-class SqlBypassActiveRecordStoreTest < Test::Unit::TestCase
def session_class
- CGI::Session::ActiveRecordStore::SqlBypass
+ CGI::Session::ActiveRecordStore::Session
end
def setup
- session_class.connection = CGI::Session::ActiveRecordStore::Session.connection
session_class.create_table!
ENV['REQUEST_METHOD'] = 'GET'
@@ -80,22 +62,36 @@ class SqlBypassActiveRecordStoreTest < Test::Unit::TestCase
def teardown
session_class.drop_table!
end
+end
- def test_basics
- s = session_class.new(:session_id => '1234', :data => { 'foo' => 'bar' })
- assert_equal 'bar', s.data['foo']
- assert s.save!
- assert_equal 'bar', s.data['foo']
- assert_not_nil t = session_class.find_by_session_id('1234')
- assert_not_nil t.data
- assert_equal 'bar', t.data['foo']
+class DeprecatedActiveRecordStoreTest < ActiveRecordStoreTest
+ def setup
+ session_class.connection.execute 'create table old_sessions (id integer primary key, sessid text unique, data text)'
+ session_class.table_name = 'old_sessions'
+ session_class.send :setup_sessid_compatibility!
+
+ 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)
+ @new_session['foo'] = 'bar'
end
- def test_reload_same_session
- @new_session.update
- reloaded = CGI::Session.new(CGI.new, 'session_id' => @new_session.session_id, 'database_manager' => CGI::Session::ActiveRecordStore)
- assert_equal 'bar', reloaded['foo']
+ def teardown
+ session_class.connection.execute 'drop table old_sessions'
+ session_class.table_name = 'sessions'
+ session_class.send :setup_sessid_compatibility!
+ end
+end
+
+class SqlBypassActiveRecordStoreTest < ActiveRecordStoreTest
+ def session_class
+ unless @session_class
+ @session_class = CGI::Session::ActiveRecordStore::SqlBypass
+ @session_class.connection = CGI::Session::ActiveRecordStore::Session.connection
+ end
+ @session_class
end
end