Guest User

Untitled

a guest
Jan 23rd, 2018
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. # encoding: utf-8
  2.  
  3. require 'spec_helper'
  4.  
  5. describe User do
  6. before(:each) do
  7. @attr = { :login => 'Foobar',
  8. :email => 'SUPER@example.com',
  9. :first_name => 'Foo',
  10. :last_name => 'Bar',
  11. :password => 'foobar',
  12. :password_confirmation => 'foobar'
  13. }
  14. User.destroy_all
  15. end
  16.  
  17.  
  18. describe "registration" do
  19.  
  20. it "should create a new user given valid attributes" do
  21. user = User.new(@attr)
  22. user.save
  23. user.login.should eq(@attr[:login].downcase)
  24. user.display_name.should eq(@attr[:login])
  25. user.email.should eq(@attr[:email].downcase)
  26. user.first_name.should eq(@attr[:first_name])
  27. user.last_name.should eq(@attr[:last_name])
  28. end
  29.  
  30. it "should require valid login" do
  31. user = User.new(@attr.merge(:login => ""))
  32. user.should_not be_valid
  33.  
  34. user = User.new(@attr.merge(:login => "Fo"))
  35. user.should_not be_valid
  36.  
  37. user = User.new(@attr.merge(:login => "Super@ser"))
  38. user.should_not be_valid
  39.  
  40. user = User.new(@attr.merge(:login => "Super User"))
  41. user.should_not be_valid
  42. end
  43.  
  44. it "should require password confirmation" do
  45. user = User.new(@attr.merge(:password_confirmation => ""))
  46. user.should_not be_valid
  47.  
  48. user = User.new(@attr.merge(:password_confirmation => 'FooBar'))
  49. user.should_not be_valid
  50. end
  51.  
  52. it "should require valid password" do
  53. user = User.new(@attr.merge(:password => "Fooba", :password_confirmation => 'Fooba'))
  54. user.should_not be_valid
  55.  
  56. user = User.new(@attr.merge(:password => 'x' * 255))
  57. user.should_not be_valid
  58. end
  59.  
  60. it "should require valid first name" do
  61. user = User.new(@attr.merge(:first_name => ''))
  62. user.should_not be_valid
  63.  
  64. user = User.new(@attr.merge(:first_name => 'x' * 255))
  65. user.should_not be_valid
  66.  
  67. user = User.new(@attr.merge(:first_name => ' '))
  68. user.should_not be_valid
  69.  
  70. user = User.new(@attr.merge(:first_name => 'a'))
  71. user.should_not be_valid
  72. end
  73.  
  74. it "should require valid last name" do
  75. user = User.new(@attr.merge(:last_name => ''))
  76. user.should_not be_valid
  77.  
  78. user = User.new(@attr.merge(:last_name => 'x' * 255))
  79. user.should_not be_valid
  80.  
  81. user = User.new(@attr.merge(:last_name => ' '))
  82. user.should_not be_valid
  83.  
  84. user = User.new(@attr.merge(:last_name => 'a'))
  85. user.should_not be_valid
  86. end
  87.  
  88. it "should reject users with duplicate email" do
  89. user = User.new(@attr)
  90. user.should be_valid
  91. user.save
  92.  
  93. duplicate_user = User.new(@attr.merge(:login => 'RailsUser'))
  94. duplicate_user.should_not be_valid
  95. end
  96.  
  97. it "should reject users with duplicate login" do
  98. user = User.new(@attr)
  99. user.should be_valid
  100. user.save
  101.  
  102. duplicate_user = User.new(@attr.merge(:email => 'super@foo.bar'))
  103. duplicate_user.should_not be_valid
  104. end
  105.  
  106. it "should have an encrypted password attribute" do
  107. user = User.new(@attr)
  108. user.password_digest.should_not be_blank
  109. end
  110.  
  111. it "should accept valid email addresses" do
  112. addresses = %w[user@foo.com THE_USER@foo.bar.org first.last@foo.jp]
  113. addresses.each do |address|
  114. valid_email_user = User.new(@attr.merge(:email => address))
  115. valid_email_user.should be_valid
  116. end
  117. end
  118.  
  119. it "should reject invalid email addresses" do
  120. addresses = %w[user@foo,com user_at_foo.org example.user@foo.]
  121. addresses.each do |address|
  122. invalid_email_user = User.new(@attr.merge(:email => address))
  123. invalid_email_user.should_not be_valid
  124. end
  125. end
  126. end
  127.  
  128.  
  129.  
  130. describe "authentication" do
  131.  
  132. before(:each) do
  133. @user = User.create(@attr)
  134. end
  135.  
  136. it "should reject wrong password" do
  137. @user.authenticate('wrong').should_not be_true
  138. end
  139.  
  140. it "should accept correct password" do
  141. @user.authenticate(@attr[:password]).should be_true
  142. end
  143. end
  144. end
Add Comment
Please, Sign In to add comment