test/session_test/callbacks_test.rb in authlogic-3.0.3 vs test/session_test/callbacks_test.rb in authlogic-3.1.0

- old
+ new

@@ -1,6 +1,54 @@ require 'test_helper' +class WackyUserSession < Authlogic::Session::Base + attr_accessor :counter + authenticate_with User + + def initialize + @counter = 0 + super + end + + def persist_by_false + self.counter += 1 + return false + end + + def persist_by_true + self.counter += 1 + return true + end +end + module SessionTest class CallbacksTest < ActiveSupport::TestCase + def setup + WackyUserSession.reset_callbacks(:persist) + end + + def test_no_callbacks + assert_equal [], WackyUserSession._persist_callbacks.map(&:filter) + session = WackyUserSession.new + session.send(:persist) + assert_equal 0, session.counter + end + + def test_true_callback_cancelling_later_callbacks + WackyUserSession.persist :persist_by_true, :persist_by_false + assert_equal [:persist_by_true, :persist_by_false], WackyUserSession._persist_callbacks.map(&:filter) + + session = WackyUserSession.new + session.send(:persist) + assert_equal 1, session.counter + end + + def test_false_callback_continuing_to_later_callbacks + WackyUserSession.persist :persist_by_false, :persist_by_true + assert_equal [:persist_by_false, :persist_by_true], WackyUserSession._persist_callbacks.map(&:filter) + + session = WackyUserSession.new + session.send(:persist) + assert_equal 2, session.counter + end end end \ No newline at end of file