class TestSessionDB

Public Instance Methods

test_all() click to toggle source
# File vendor/qwik/lib/qwik/common-session.rb, line 102
def test_all
  if defined?($test_memory)
    @memory = $test_memory
  else
    @memory = Qwik::ServerMemory.new(@config)
  end

  sdb = @memory.sessiondb

  # test generate session id
  sid = sdb.generate_sid
  ok_eq(32, sid.length)
  assert_match(/\A[0-9a-f]+\z/, sid)

  # test put
  sdb.put(sid, 'user@e.com')
  file = sdb.path(sid)
  ok_eq(true, file.exist?)

  # test get empty
  ok_eq(nil, sdb.get(nil))
  ok_eq(nil, sdb.get(''))

  # test get
  user = sdb.get(sid)
  ok_eq('user@e.com', user)

  mtime = file.mtime
  oldtime = Time.at(mtime.to_i - 60 * 60 * 24 * 100) # 100 days ago.
  file.utime(oldtime, oldtime)

  # test session expired
  user = sdb.get(sid)
  ok_eq(nil, user)
  ok_eq(false, file.exist?)
end