test/maestrano/sso/session_test.rb in maestrano-0.11.0 vs test/maestrano/sso/session_test.rb in maestrano-0.12.0

- old
+ new

@@ -153,9 +153,70 @@ should "return false if internal session is nil" do sso_session = Maestrano::SSO::Session.new(nil) assert_false @sso_session.valid? end end + + context 'with preset' do + context "valid?" do + setup do + @preset = 'my-preset' + @sso_session = Maestrano::SSO::Session[@preset].new(@session) + Maestrano[@preset].configure { |c| c.sso.slo_enabled = true } + end + + should "return true if Single Logout is disabled" do + Maestrano[@preset].configure { |c| c.sso.slo_enabled = false } + @sso_session.stubs(:remote_check_required?).returns(true) + @sso_session.stubs(:perform_remote_check).returns(false) + assert @sso_session.valid? + end + + should "return true if_session is enabled and session is nil" do + sso_session = Maestrano::SSO::Session[@preset].new(nil) + assert sso_session.valid?(if_session: true) + end + + should "return true if_session is enabled and session is empty" do + sso_session = Maestrano::SSO::Session[@preset].new({}) + assert sso_session.valid?(if_session: true) + end + + should "return true if no remote_check_required?" do + @sso_session.stubs(:remote_check_required?).returns(false) + assert @sso_session.valid? + assert @sso_session.valid?(if_session: true) + end + + should "return true if remote_check_required? and valid" do + @sso_session.stubs(:remote_check_required?).returns(true) + @sso_session.stubs(:perform_remote_check).returns(true) + assert @sso_session.valid? + assert @sso_session.valid?(if_session: true) + end + + should "update maestrano session with recheck timestamp if remote_check_required? and valid" do + recheck = (@sso_session.recheck + 600) + @sso_session.recheck = recheck + @sso_session.stubs(:remote_check_required?).returns(true) + @sso_session.stubs(:perform_remote_check).returns(true) + @sso_session.valid? + assert_equal JSON.parse(Base64.decode64(@session[:maestrano]))['session_recheck'], recheck.utc.iso8601 + end + + should "return false if remote_check_required? and invalid" do + @sso_session.stubs(:remote_check_required?).returns(true) + @sso_session.stubs(:perform_remote_check).returns(false) + assert_false @sso_session.valid? + assert_false @sso_session.valid?(if_session: true) + end + + should "return false if internal session is nil" do + sso_session = Maestrano::SSO::Session[@preset].new(nil) + assert_false @sso_session.valid? + end + end + end end end end \ No newline at end of file