Skip to content

Instantly share code, notes, and snippets.

@lancecarlson
Created January 7, 2010 00:01
Show Gist options
  • Save lancecarlson/270827 to your computer and use it in GitHub Desktop.
Save lancecarlson/270827 to your computer and use it in GitHub Desktop.
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