Commit 587ba99a90f2c2e2d129addd858c858475bac116

Authored by Rodrigo Souto
1 parent 07f1d9e1

api: test private token

app/models/profile.rb
... ... @@ -937,7 +937,6 @@ private :generate_url, :url_options
937 937 image.public_filename(:icon) if image.present?
938 938 end
939 939  
940   - #FIXME make this test
941 940 def profile_custom_image(size = :icon)
942 941 image_path = profile_custom_icon if size == :icon
943 942 image_path ||= image.public_filename(size) if image.present?
... ...
app/models/user.rb
... ... @@ -120,16 +120,15 @@ class User < ActiveRecord::Base
120 120 self.update_attribute :last_login_at, Time.now
121 121 end
122 122  
123   - #FIXME make this test
124 123 def generate_private_token!
125 124 self.private_token = SecureRandom.hex
126 125 self.private_token_generated_at = DateTime.now
127 126 save(:validate => false)
128 127 end
129 128  
130   - #FIXME make this test
  129 + TOKEN_VALIDITY = 2.weeks
131 130 def private_token_expired?
132   - self.generate_private_token! if self.private_token.nil? || (self.private_token_generated_at + 2.weeks < DateTime.now)
  131 + self.private_token.nil? || (self.private_token_generated_at + TOKEN_VALIDITY < DateTime.now)
133 132 end
134 133  
135 134 # Activates the user in the database.
... ...
test/unit/user_test.rb
... ... @@ -715,6 +715,25 @@ class UserTest &lt; ActiveSupport::TestCase
715 715 assert_equal 'quire', user.person.name
716 716 end
717 717  
  718 + should 'generate private token' do
  719 + user = User.new
  720 + SecureRandom.stubs(:hex).returns('token')
  721 + user.generate_private_token!
  722 +
  723 + assert user.private_token, 'token'
  724 + end
  725 +
  726 + should 'check for private token validity' do
  727 + user = User.new
  728 + assert user.private_token_expired?
  729 +
  730 + user.generate_private_token!
  731 + assert !user.private_token_expired?
  732 +
  733 + user.private_token_generated_at = DateTime.now - (User::TOKEN_VALIDITY + 1.minute)
  734 + assert user.private_token_expired?
  735 + end
  736 +
718 737 protected
719 738 def new_user(options = {})
720 739 user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options))
... ...