Sha256: a6393c24517c0e0458868ce890f77d0cdabb1a2b7452f03b45b60da56a36fdc1

Contents?: true

Size: 1.97 KB

Versions: 10

Compression:

Stored size: 1.97 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/spec_helper')

describe Sinatra::Application do
  
  # ----------------- SESSION TIMEOUT -----------------------
  describe Sinatra::Application, "with session timeout features" do
    before(:all) do
      sorcery_reload!([:session_timeout])
      sorcery_controller_property_set(:session_timeout,0.5)
      create_new_user
    end
    
    after(:each) do
      Timecop.return
    end
    
    it "should not reset session before session timeout" do
      session[:user_id] = User.first.id
      get "/test_should_be_logged_in"
      last_response.should be_ok
    end
    
    it "should reset session after session timeout" do
      get "/test_login", :username => 'gizmo', :password => 'secret'
      session[:user_id].should_not be_nil
      Timecop.travel(Time.now+0.6)
      get "/test_should_be_logged_in"
      last_response.should be_a_redirect
    end
    
    context "with 'session_timeout_from_last_action'" do
      it "should not logout if there was activity" do
        session[:user_id] = nil
        sorcery_controller_property_set(:session_timeout,2)
        sorcery_controller_property_set(:session_timeout_from_last_action, true)
        get "/test_login", :username => 'gizmo', :password => 'secret'
        Timecop.travel(Time.now+1)
        get "/test_should_be_logged_in"
        session[:user_id].should_not be_nil
        Timecop.travel(Time.now+1)
        get "/test_should_be_logged_in"
        session[:user_id].should_not be_nil
        last_response.should be_ok
      end
    
      it "should logout if there was no activity" do
        sorcery_controller_property_set(:session_timeout,0.5)
        sorcery_controller_property_set(:session_timeout_from_last_action, true)
        get "/test_login", :username => 'gizmo', :password => 'secret'
        Timecop.travel(Time.now+0.6)
        get "/test_should_be_logged_in"
        session[:user_id].should be_nil
        last_response.should be_a_redirect
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sorcery-0.7.0 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.6.1 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.6.0 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.5.30 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.5.3 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.5.21 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.5.2 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.5.1 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.5.0 spec/sinatra/spec/controller_session_timeout_spec.rb
sorcery-0.4.2 spec/sinatra/spec/controller_session_timeout_spec.rb