Created
January 7, 2010 00:01
-
-
Save lancecarlson/270827 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
User#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
BEFORE 1 | |
User#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
#<User @id=1 @username=nil @email="[email protected]" @encrypted_password="ef32cf976007d3a6958927d9dfa28c4309c67d26" @password_salt="xWrPOZNsXU9ncVLaTFbk" @confirmation_token=nil @confirmed_at=Wed, 06 Jan 2010 19:00:08 -0500 @confirmation_sent_at=nil @reset_password_token=nil @remember_token=nil @remember_created_at=nil @sign_in_count=1 @current_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @last_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @current_sign_in_ip="127.0.0.1" @last_sign_in_ip="127.0.0.1" @created_at=Thu, 07 Jan 2010 00:00:08 +0000 @updated_at=nil> | |
AFTER 1 | |
.User#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
BEFORE 2 | |
User#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
#<User @id=1 @username=nil @email="[email protected]" @encrypted_password="ef32cf976007d3a6958927d9dfa28c4309c67d26" @password_salt="xWrPOZNsXU9ncVLaTFbk" @confirmation_token=nil @confirmed_at=Wed, 06 Jan 2010 19:00:08 -0500 @confirmation_sent_at=nil @reset_password_token=nil @remember_token=nil @remember_created_at=nil @sign_in_count=2 @current_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @last_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @current_sign_in_ip="127.0.0.1" @last_sign_in_ip="127.0.0.1" @created_at=Thu, 07 Jan 2010 00:00:08 +0000 @updated_at=nil> | |
AFTER 2 | |
[#<User @id=1 @username=nil @email="[email protected]" @encrypted_password="ef32cf976007d3a6958927d9dfa28c4309c67d26" @password_salt="xWrPOZNsXU9ncVLaTFbk" @confirmation_token=nil @confirmed_at=Wed, 06 Jan 2010 19:00:08 -0500 @confirmation_sent_at=nil @reset_password_token=nil @remember_token=nil @remember_created_at=nil @sign_in_count=2 @current_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @last_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @current_sign_in_ip="127.0.0.1" @last_sign_in_ip="127.0.0.1" @created_at=Thu, 07 Jan 2010 00:00:08 +0000 @updated_at=nil>, #<User @id=2 @username=nil @email="[email protected]" @encrypted_password="ba45fda01a4d91d23885c6bc9ec5799a9ee2d536" @password_salt="cVoa3xc8Az8mPWlX9oye" @confirmation_token=nil @confirmed_at=Wed, 06 Jan 2010 19:00:08 -0500 @confirmation_sent_at=nil @reset_password_token=nil @remember_token=nil @remember_created_at=nil @sign_in_count=nil @current_sign_in_at=nil @last_sign_in_at=nil @current_sign_in_ip=nil @last_sign_in_ip=nil @created_at=Thu, 07 Jan 2010 00:00:08 +0000 @updated_at=nil>] | |
FUser#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
#<User @id=1 @username=nil @email="[email protected]" @encrypted_password="ef32cf976007d3a6958927d9dfa28c4309c67d26" @password_salt="xWrPOZNsXU9ncVLaTFbk" @confirmation_token=nil @confirmed_at=Wed, 06 Jan 2010 19:00:08 -0500 @confirmation_sent_at=nil @reset_password_token=nil @remember_token=nil @remember_created_at=nil @sign_in_count=3 @current_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @last_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @current_sign_in_ip="127.0.0.1" @last_sign_in_ip="127.0.0.1" @created_at=Thu, 07 Jan 2010 00:00:08 +0000 @updated_at=nil> | |
.User#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
User#new_record? is deprecated, use User#new? instead (/Users/lancelotcarlson/Projects/ruby/devise/test/rails_app/vendor/plugins/devise/lib/devise/models/confirmable.rb:55:in `confirmed?') | |
#<User @id=1 @username=nil @email="[email protected]" @encrypted_password="ef32cf976007d3a6958927d9dfa28c4309c67d26" @password_salt="xWrPOZNsXU9ncVLaTFbk" @confirmation_token=nil @confirmed_at=Wed, 06 Jan 2010 19:00:08 -0500 @confirmation_sent_at=nil @reset_password_token=nil @remember_token=nil @remember_created_at=nil @sign_in_count=4 @current_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @last_sign_in_at=Wed, 06 Jan 2010 19:00:08 -0500 @current_sign_in_ip="127.0.0.1" @last_sign_in_ip="127.0.0.1" @created_at=Thu, 07 Jan 2010 00:00:08 +0000 @updated_at=nil> | |
F | |
Finished in 0.993866 seconds. | |
1) Failure: | |
test_current_and_last_sign_in_timestamps_are_updated_on_each_sign_in(TrackableHooksTest) | |
[test/integration/trackable_test.rb:15:in `test_current_and_last_sign_in_timestamps_are_updated_on_each_sign_in' | |
activesupport (2.3.5) lib/active_support/testing/setup_and_teardown.rb:62:in `__send__' | |
activesupport (2.3.5) lib/active_support/testing/setup_and_teardown.rb:62:in `run' | |
actionpack (2.3.5) lib/action_controller/integration.rb:657:in `run']: | |
<nil> | |
expected to be kind_of? | |
<Time> but was | |
<NilClass>. | |
2) Failure: | |
test_increase_sign_in_count(TrackableHooksTest) | |
[test/integration/trackable_test.rb:50:in `test_increase_sign_in_count' | |
activesupport (2.3.5) lib/active_support/testing/setup_and_teardown.rb:62:in `__send__' | |
activesupport (2.3.5) lib/active_support/testing/setup_and_teardown.rb:62:in `run' | |
actionpack (2.3.5) lib/action_controller/integration.rb:657:in `run']: | |
<1> expected but was | |
<nil>. | |
require 'test/test_helper' | |
class TrackableHooksTest < ActionController::IntegrationTest | |
test "current and last sign in timestamps are updated on each sign in" do | |
user = create_user | |
assert_nil user.current_sign_in_at | |
assert_nil user.last_sign_in_at | |
puts "BEFORE #{user.id}" | |
sign_in_as_user | |
#user.reload | |
puts "AFTER #{user.id}" | |
p User.all | |
assert_kind_of Time, user.current_sign_in_at | |
assert_kind_of Time, user.last_sign_in_at | |
assert_equal user.current_sign_in_at, user.last_sign_in_at | |
assert user.current_sign_in_at >= user.created_at | |
visit destroy_user_session_path | |
new_time = 2.seconds.from_now | |
Time.stubs(:now).returns(new_time) | |
sign_in_as_user | |
user.reload | |
assert user.current_sign_in_at > user.last_sign_in_at | |
end | |
test "current and last sign in remote ip are updated on each sign in" do | |
user = create_user | |
assert_nil user.current_sign_in_ip | |
assert_nil user.last_sign_in_ip | |
puts "BEFORE #{user.id}" | |
sign_in_as_user | |
user.reload | |
puts "AFTER #{user.id}" | |
assert_equal "127.0.0.1", user.current_sign_in_ip | |
assert_equal "127.0.0.1", user.last_sign_in_ip | |
end | |
test "increase sign in count" do | |
user = create_user | |
assert_nil user.sign_in_count | |
sign_in_as_user | |
user.reload | |
assert_equal 1, user.sign_in_count | |
visit destroy_user_session_path | |
sign_in_as_user | |
user.reload | |
assert_equal 2, user.sign_in_count | |
end | |
test "does not update anything if user has signed out along the way" do | |
swap Devise, :confirm_within => 0 do | |
user = create_user(:confirm => false) | |
sign_in_as_user | |
user.reload | |
assert_nil user.current_sign_in_at | |
assert_nil user.last_sign_in_at | |
end | |
end | |
end | |
# After each sign in, update sign in time, sign in count and sign in IP. | |
Warden::Manager.after_authentication do |record, warden, options| | |
scope = options[:scope] | |
if Devise.mappings[scope].try(:trackable?) && warden.authenticated?(scope) | |
old_current, new_current = record.current_sign_in_at, Time.now | |
record.last_sign_in_at = old_current || new_current | |
record.current_sign_in_at = new_current | |
old_current, new_current = record.current_sign_in_ip, warden.request.remote_ip | |
record.last_sign_in_ip = old_current || new_current | |
record.current_sign_in_ip = new_current | |
record.sign_in_count ||= 0 | |
record.sign_in_count += 1 | |
record.save(false) | |
p record | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment