summaryrefslogtreecommitdiff
path: root/vendor/gems/couchrest_session_store/test/session_store_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/couchrest_session_store/test/session_store_test.rb')
-rw-r--r--vendor/gems/couchrest_session_store/test/session_store_test.rb168
1 files changed, 0 insertions, 168 deletions
diff --git a/vendor/gems/couchrest_session_store/test/session_store_test.rb b/vendor/gems/couchrest_session_store/test/session_store_test.rb
deleted file mode 100644
index 5949ae6..0000000
--- a/vendor/gems/couchrest_session_store/test/session_store_test.rb
+++ /dev/null
@@ -1,168 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/test_helper')
-
-class SessionStoreTest < MiniTest::Test
-
- def test_session_initialization
- sid, session = store.send :get_session, env, nil
- assert sid
- assert_equal Hash.new, session
- end
-
- def test_normal_session_flow
- sid, session = never_expiring_session
- assert_equal [sid, session], store.send(:get_session, env, sid)
- store.send :destroy_session, env, sid, {}
- end
-
- def test_updating_session
- sid, session = never_expiring_session
- session[:bla] = "blub"
- store.send :set_session, env, sid, session, {}
- assert_equal [sid, session], store.send(:get_session, env, sid)
- store.send :destroy_session, env, sid, {}
- end
-
- def test_prevent_access_to_design_docs
- sid = '_design/bla'
- session = {views: 'my hacked view'}
- assert_raises CouchRest::NotFound do
- store_session(sid, session)
- end
- end
-
- def test_unmarshalled_session_flow
- sid, session = init_session
- store_session sid, session, :marshal_data => false
- new_sid, new_session = store.send(:get_session, env, sid)
- assert_equal sid, new_sid
- assert_equal session[:key], new_session["key"]
- store.send :destroy_session, env, sid, {}
- end
-
- def test_unmarshalled_data
- sid, session = init_session
- store_session sid, session, :marshal_data => false
- couch = CouchTester.new
- data = couch.get(sid)["data"]
- assert_equal session[:key], data["key"]
- end
-
- def test_logout_in_between
- sid, session = never_expiring_session
- store.send :destroy_session, env, sid, {}
- other_sid, other_session = store.send(:get_session, env, sid)
- assert_equal Hash.new, other_session
- end
-
- def test_can_logout_twice
- sid, session = never_expiring_session
- store.send :destroy_session, env, sid, {}
- store.send :destroy_session, env, sid, {}
- other_sid, other_session = store.send(:get_session, env, sid)
- assert_equal Hash.new, other_session
- end
-
- def test_stored_and_not_expired_yet
- sid, session = expiring_session
- couchrest_session = CouchRest::Session.fetch(sid)
- expires = couchrest_session.send :expires
- assert expires
- assert !couchrest_session.expired?
- assert (expires - Time.now) > 0, "Exiry should be in the future"
- assert (expires - Time.now) <= 300, "Should expire after 300 seconds - not more"
- assert_equal [sid, session], store.send(:get_session, env, sid)
- end
-
- def test_stored_but_expired
- sid, session = expired_session
- other_sid, other_session = store.send(:get_session, env, sid)
- assert_equal Hash.new, other_session, "session should have expired"
- assert other_sid != sid
- end
-
- def test_find_expired_sessions
- expired, expiring, never_expiring = seed_sessions
- expired_session_ids = store.expired.map {|row| row['id']}
- assert expired_session_ids.include?(expired)
- assert !expired_session_ids.include?(expiring)
- assert !expired_session_ids.include?(never_expiring)
- end
-
- def test_find_never_expiring_sessions
- expired, expiring, never_expiring = seed_sessions
- never_expiring_session_ids = store.never_expiring.map {|row| row['id']}
- assert never_expiring_session_ids.include?(never_expiring)
- assert !never_expiring_session_ids.include?(expiring)
- assert !never_expiring_session_ids.include?(expired)
- end
-
- def test_cleanup_expired_sessions
- sid, session = expired_session
- store.cleanup(store.expired)
- assert_raises CouchRest::NotFound do
- CouchTester.new.get(sid)
- end
- end
-
- def test_keep_fresh_during_cleanup
- sid, session = expiring_session
- store.cleanup(store.expired)
- assert_equal [sid, session], store.send(:get_session, env, sid)
- end
-
- def test_store_without_expiry
- sid, session = never_expiring_session
- couch = CouchTester.new
- assert_nil couch.get(sid)["expires"]
- assert_equal [sid, session], store.send(:get_session, env, sid)
- end
-
- def app
- nil
- end
-
- def store(options = {})
- @store ||= CouchRest::Session::Store.new(app, options)
- end
-
- def env(settings = {})
- env ||= settings
- end
-
- # returns the session ids of an expired, and expiring and a never
- # expiring session
- def seed_sessions
- [expired_session, expiring_session, never_expiring_session].map(&:first)
- end
-
- def never_expiring_session
- store_session *init_session
- end
-
- def expiring_session
- sid, session = init_session
- store_session(sid, session, expire_after: 300)
- end
-
- def expired_session
- expire_session *expiring_session
- end
-
- def init_session
- sid, session = store.send :get_session, env, nil
- session[:key] = "stub"
- return sid, session
- end
-
- def store_session(sid, session, options = {})
- store.send :set_session, env, sid, session, options
- return sid, session
- end
-
- def expire_session(sid, session)
- CouchTester.new.update sid,
- "expires" => (Time.now - 10.minutes).utc.iso8601
- return sid, session
- end
-
-end