Guest User

Untitled

a guest
Mar 7th, 2018
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. require File.dirname(__FILE__) + '/../spec_helper'
  2.  
  3. describe "A new User" do
  4. it "should be created" do
  5. lambda{
  6. user = create_user
  7. user.should_not be_new_record
  8. }.should change(User,:count).by(1)
  9. end
  10.  
  11. it "should require login" do
  12. lambda{
  13. u = create_user(:login => nil)
  14. u.should have_at_least(1).errors_on(:login)
  15. }.should_not change(User,:count)
  16. end
  17.  
  18. it "should require password" do
  19. lambda{
  20. u = create_user(:password => nil)
  21. u.should have_at_least(1).errors_on(:password)
  22. }.should_not change(User,:count)
  23. end
  24.  
  25. it "should require password confirmation" do
  26. lambda{
  27. u = create_user(:password_confirmation => nil)
  28. u.should have_at_least(1).errors_on(:password_confirmation)
  29. }.should_not change(User,:count)
  30. end
  31.  
  32. it "should require email" do
  33. lambda{
  34. u = create_user(:email => nil)
  35. u.should have_at_least(1).errors_on(:email)
  36. }.should_not change(User,:count)
  37. end
  38.  
  39. #it "should not be activated" do
  40. #u = create_user
  41. #u.should_not be_activated
  42. #end
  43.  
  44. #it "should allow activation" do
  45. #u = create_user
  46. #u.should_not be_activated
  47. #u.activate
  48. #u.should be_activated
  49. #end
  50.  
  51. it "should have many user roles" do
  52. User.reflect_on_association(:user_roles).should_not be_nil
  53. end
  54.  
  55. it "should have many roles though user roles" do
  56. User.reflect_on_association(:roles).should_not be_nil
  57. end
  58.  
  59. it "should know what role it has" do
  60. role = Role.create(:name=>'foo')
  61. user = create_user
  62. user.roles.add(role, user)
  63. user.should be_in_role('foo')
  64. end
  65.  
  66. protected
  67.  
  68. def create_user(options = {})
  69. User.create({ :login => 'nemo',
  70. :email => 'nemo@example.com',
  71. :password => 'nemo',
  72. :password_confirmation => 'nemo' }.merge(options))
  73. end
  74. end
  75.  
  76.  
  77. =begin describe "User with fixtures loaded" do
  78. fixtures :users
  79.  
  80. it "should reset password" do
  81. users(:quentin).update_attributes(:password => 'new password', :password_confirmation => 'new password')
  82. users(:quentin).should == User.authenticate('quentin','new password')
  83. end
  84.  
  85. it "should not rehash password" do
  86. users(:quentin).update_attributes(:login => 'quentin2')
  87. users(:quentin).should == User.authenticate('quentin2','test')
  88. end
  89.  
  90. it "should authenticate user" do
  91. users(:quentin).should == User.authenticate('quentin','test')
  92. end
  93.  
  94. it "should set remember token" do
  95. users(:quentin).remember_me
  96. users(:quentin).remember_token.should_not be_nil
  97. users(:quentin).remember_token_expires_at.should_not be_nil
  98. end
  99.  
  100. it "should unset remember token" do
  101. users(:quentin).remember_me
  102. users(:quentin).remember_token.should_not be_nil
  103. users(:quentin).forget_me
  104. users(:quentin).remember_token.should be_nil
  105. end
  106.  
  107. it "should remember me for one week" do
  108. before = 1.week.from_now.utc
  109. users(:quentin).remember_me_for 1.week
  110. after = 1.week.from_now.utc
  111. users(:quentin).remember_token.should_not be_nil
  112. users(:quentin).remember_token_expires_at.should_not be_nil
  113. users(:quentin).remember_token_expires_at.should be_between(before, after)
  114. end
  115.  
  116. it "should remember me until one week" do
  117. time = 1.week.from_now.utc
  118. users(:quentin).remember_me_until time
  119. users(:quentin).remember_token.should_not be_nil
  120. users(:quentin).remember_token_expires_at.should_not be_nil
  121. users(:quentin).remember_token_expires_at.should == time
  122. end
  123.  
  124.  
  125. it "should remember me for two week by default" do
  126. before = 2.week.from_now.utc
  127. users(:quentin).remember_me
  128. after = 2.week.from_now.utc
  129. users(:quentin).remember_token.should_not be_nil
  130. users(:quentin).remember_token_expires_at.should_not be_nil
  131. users(:quentin).remember_token_expires_at.should be_between(before, after)
  132. end
  133. end
  134. =end
Add Comment
Please, Sign In to add comment