aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/session_store/session_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/cases/session_store/session_test.rb')
-rw-r--r--activerecord/test/cases/session_store/session_test.rb63
1 files changed, 63 insertions, 0 deletions
diff --git a/activerecord/test/cases/session_store/session_test.rb b/activerecord/test/cases/session_store/session_test.rb
new file mode 100644
index 0000000000..bb2e1ec97a
--- /dev/null
+++ b/activerecord/test/cases/session_store/session_test.rb
@@ -0,0 +1,63 @@
+require 'cases/helper'
+require 'action_dispatch'
+require 'active_record/session_store'
+
+module ActiveRecord
+ class SessionStore
+ class SessionTest < ActiveRecord::TestCase
+ def setup
+ super
+ Session.drop_table! if Session.table_exists?
+ end
+
+ def test_data_column_name
+ # default column name is 'data'
+ assert_equal 'data', Session.data_column_name
+ end
+
+ def test_table_name
+ assert_equal 'sessions', Session.table_name
+ end
+
+ def test_create_table!
+ assert !Session.table_exists?
+ Session.create_table!
+ assert Session.table_exists?
+ Session.drop_table!
+ assert !Session.table_exists?
+ end
+
+ def test_find_by_sess_id_compat
+ klass = Class.new(Session) do
+ def self.session_id_column
+ 'sessid'
+ end
+ end
+ klass.create_table!
+
+ assert klass.columns_hash['sessid'], 'sessid column exists'
+ session = klass.new(:data => 'hello')
+ session.sessid = 100
+ session.save!
+
+ found = klass.find_by_session_id(100)
+ assert_equal session, found
+ assert_equal session.sessid, found.session_id.to_i
+ ensure
+ klass.drop_table!
+ end
+
+ def test_find_by_session_id
+ Session.create_table!
+ s = Session.create!(:data => 'world', :session_id => 10)
+ assert_equal s, Session.find_by_session_id(10)
+ Session.drop_table!
+ end
+
+ def test_loaded?
+ s = Session.new
+ assert !s.loaded?, 'session is not loaded'
+ end
+ end
+ end
+end