Changeset 268

Show
Ignore:
Timestamp:
03/07/08 16:37:31 (7 months ago)
Author:
gdagley
Message:

speed up user tests

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • incubator/jumpstart/lib/authentable_entity.rb

    r214 r268  
    11require 'bcrypt' 
     2require 'digest/sha1' 
     3 
    24module AuthentableEntity 
    35  include BCrypt 
     
    117119     
    118120    def generate_token 
    119       require 'digest/sha1' 
    120       self.activation_code = Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join ) 
     121      Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join ) 
    121122    end 
    122123     
  • incubator/jumpstart/test/unit/user_test.rb

    r214 r268  
    44  describe "validations" do 
    55    it "should require a login" do 
    6       user = new_user(:login => nil) 
    7       user.should.not.be.valid 
     6      user = User.new(:login => nil) 
    87      user.should.have_errors(:login) 
    98    end 
    109 
    1110    it "should require a unique login" do 
    12       another_user = create_user 
    13        
    14       user = new_user(:login => another_user.login) 
    15       user.should.not.be.valid 
     11      User.stubs(:find).returns(stub("another user with same login")) 
     12       
     13      user = User.new(:login => 'foo') 
    1614      user.should.have_errors(:login) 
    1715    end 
    1816     
    1917    it "should require an email" do 
    20       user = new_user(:email => nil) 
    21       user.should.not.be.valid 
     18      user = User.new(:email => nil) 
    2219      user.should.have_errors(:email) 
    2320    end 
    2421 
    2522    it "should require a unique email" do 
    26       another_user = create_user 
    27        
    28       user = new_user(:email => another_user.email) 
    29       user.should.not.be.valid 
     23      User.stubs(:find).returns(stub("another user with same email")) 
     24       
     25      user = User.new(:email => 'foo@example.com') 
    3026      user.should.have_errors(:email) 
    3127    end 
    3228     
    3329    it "should require a password" do 
    34       user = new_user(:password => nil) 
    35       user.should.not.be.valid 
     30      user = User.new(:password => nil) 
    3631      user.should.have_errors(:password) 
    3732    end 
    3833 
    3934    it "should require a password confirmation" do 
    40       user = new_user(:password_confirmation => nil) 
    41       user.should.not.be.valid 
     35      user = User.new(:password_confirmation => nil) 
    4236      user.should.have_errors(:password_confirmation) 
    4337    end 
     
    4539   
    4640  describe "creation" do 
    47     it "should generate activation code" do 
    48       create_user.activation_code.should.not.be.nil 
    49     end 
    50      
    51     it "should identify the user as not active" do 
    52       create_user.should.not.be.active 
    53     end 
     41    it "should use token for activation code" do 
     42      User.any_instance.stubs(:generate_token).returns("abcdefg") 
     43      User.new.send(:make_activation_code).should == "abcdefg" 
     44    end 
     45     
     46    it "should generate activation code after create" do 
     47      user = create_user 
     48      user.activation_code.should.not.be.nil 
     49    end 
     50     
     51    it "should identify the user as not active when they have an activation code" do 
     52      user = User.new 
     53      user.activation_code = "foo" 
     54      user.should.not.be.active 
     55    end 
     56     
     57    it "should identify the user as active when they dont have an activation code" do 
     58      User.new(:activation_code => nil).should.be.active 
     59    end 
     60     
    5461  end 
    5562   
     
    9299   
    93100  describe "activation" do 
    94     before do 
    95       @user = create_user 
    96     end 
    97      
     101 
    98102    it "should remove the activation code" do 
    99       @user.activate 
    100       @user.activation_code.should.be.nil 
     103      user = User.new(:activation_code => "foo") 
     104      user.stubs(:save).returns(true) 
     105      user.activate 
     106      user.activation_code.should.be.nil 
    101107    end 
    102108     
    103109    it "should set the activated at timestamp" do 
    104       @user.activate 
    105       @user.activated_at.should.not.be.nil 
     110      user = User.new(:activation_code => "foo") 
     111      user.stubs(:save).returns(true) 
     112      user.activate 
     113      user.activated_at.should.not.be.nil 
    106114    end 
    107115 
    108116    it "should identify the user as recently activated" do 
    109       @user.activate 
    110       @user.should.be.recently_activated 
     117      user = User.new(:activation_code => "foo") 
     118      user.stubs(:save).returns(true) 
     119      user.activate 
     120      user.should.be.recently_activated 
    111121    end 
    112122 
    113123    it "should identify the user as active" do 
    114       @user.activate 
    115       @user.should.be.active 
     124      user = User.new(:activation_code => "foo") 
     125      user.stubs(:save).returns(true) 
     126      user.activate 
     127      user.should.be.active 
    116128    end 
    117129     
     
    119131   
    120132  describe "remember me" do 
    121     before do 
    122       @user = create_user 
    123     end 
    124133 
    125134    it "should set remember token" do 
    126       @user.remember_me 
    127       @user.remember_token.should.not.be.nil 
     135      user = User.new 
     136      user.stubs(:save).returns(false) 
     137      user.remember_me 
     138      user.remember_token.should.not.be.nil 
    128139    end 
    129140     
    130141    it "should set remember token expiration" do 
    131       @user.remember_me 
    132       @user.remember_token_expires_at.should.not.be.nil 
     142      user = User.new 
     143      user.stubs(:save).returns(false) 
     144      user.remember_me 
     145      user.remember_token_expires_at.should.not.be.nil 
    133146    end 
    134147     
    135148    it "should set remember token expiration to given duration" do 
     149      user = User.new 
     150      user.stubs(:save).returns(false) 
     151       
    136152      before = 1.week.from_now.utc 
    137       @user.remember_me_for 1.week 
     153      user.remember_me_for 1.week 
    138154      after = 1.week.from_now.utc 
    139       @user.remember_token_expires_at.between?(before, after).should == true 
     155      user.remember_token_expires_at.between?(before, after).should == true 
    140156    end 
    141157     
    142158    it "should set remember token expiration to a specific time" do 
     159      user = User.new 
     160      user.stubs(:save).returns(false) 
     161 
    143162      time = 1.week.from_now.utc 
    144       @user.remember_me_until time 
    145       @user.remember_token_expires_at.should == time 
     163      user.remember_me_until time 
     164      user.remember_token_expires_at.should == time 
    146165    end 
    147166 
    148167    it "should default remember token expiration to 2 weeks" do 
     168      user = User.new 
     169      user.stubs(:save).returns(false) 
     170       
    149171      before = 2.weeks.from_now.utc 
    150       @user.remember_me 
     172      user.remember_me 
    151173      after = 2.weeks.from_now.utc 
    152       @user.remember_token_expires_at.between?(before, after).should == true 
     174      user.remember_token_expires_at.between?(before, after).should == true 
    153175    end     
    154176  end 
    155177   
    156178  describe "forget me" do 
    157     before do 
    158       @user = create_user 
    159       @user.remember_me 
    160     end 
    161179     
    162180    it "should unset remember token" do 
    163       @user.forget_me 
    164       @user.remember_token.should.be.nil 
     181      user = User.new(:remember_token => "foo") 
     182      user.forget_me 
     183      user.remember_token.should.be.nil 
    165184    end 
    166185     
    167186    it "should unset remember token expiration" do 
    168       @user.forget_me 
    169       @user.remember_token_expires_at.should.be.nil 
     187      user = User.new(:remember_token_expires_at => "foo") 
     188      user.forget_me 
     189      user.remember_token_expires_at.should.be.nil 
    170190    end 
    171191  end 
    172192   
    173193  describe "resetting password" do 
    174     before do 
    175       @user = create_user 
    176       @old_password = @user.password       
    177     end 
    178194     
    179195    it "should change the password" do 
    180       @user.reset_password 
    181       @user.password.should.not == @old_password 
    182     end 
    183      
    184     it "should not authenticate using old password" do 
    185       @user.reset_password 
    186       User.authenticate(@user.email, @old_password).should.be.nil 
     196      user = User.new 
     197      user.stubs(:save) 
     198      user.expects(:password=).with(anything) 
     199      user.reset_password 
    187200    end 
    188201     
    189202    it "should identify the user as resetting their password" do 
    190       @user.reset_password 
    191       @user.recently_reset_password?.should == true 
     203      user = User.new 
     204      user.stubs(:save) 
     205      user.reset_password 
     206      user.recently_reset_password?.should == true 
    192207    end 
    193208  end