Guest User

Untitled

a guest
Jan 25th, 2018
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. require 'spec_helper'
  2.  
  3. describe User do
  4.  
  5. before(:each) do
  6. @attr = { :name => "Example User",
  7. :email => "user@example.com",
  8. :password => "secret"
  9. #:password_confirmation => "secret"
  10. }
  11. end
  12.  
  13.  
  14. it "should create a new instance given valid attributes" do
  15. User.create!(@attr)
  16. end
  17.  
  18.  
  19.  
  20. # Name validation tests
  21. it "should require a name" do
  22. no_name_user = User.new(@attr.merge(:name => ""))
  23. no_name_user.should_not be_valid
  24. end
  25. it "should reject names that are too long" do
  26. long_name = "a" * 51
  27. long_name_user = User.new(@attr.merge(:name => long_name))
  28. long_name_user.should_not be_valid
  29. end
  30.  
  31.  
  32.  
  33. # Email validation tests
  34. it "should require an email" do
  35. no_email_user = User.new(@attr.merge(:email => ""))
  36. no_email_user.should_not be_valid
  37. end
  38. it "should accept valid email addresses" do
  39. addresses = %w[user@foo.com THE_USER@foo.bar.org first.last23@foo.jp]
  40. addresses.each do |address|
  41. valid_email_user = User.new(@attr.merge(:email => address))
  42. valid_email_user.should be_valid
  43. end
  44. end
  45. it "should reject invalid email addresses" do
  46. addresses = %w[user@foo,com user_at_foo.org example.user@foo.]
  47. addresses.each do |address|
  48. invalid_email_user = User.new(@attr.merge(:email => address))
  49. invalid_email_user.should_not be_valid
  50. end
  51. end
  52. it "should reject duplicate email addresses independent of case" do
  53. upcased_email = @attr[:email].upcase
  54. User.create!(@attr.merge(:email => upcased_email))
  55. user_with_duplicate_email = User.new(@attr)
  56. user_with_duplicate_email.should_not be_valid
  57. end
  58.  
  59.  
  60.  
  61. # Password validation tests
  62. describe "password validations" do
  63.  
  64. it "should require a password" do
  65. User.new(@attr.merge(:password => "", :password_confirmation => "")).should_not be_valid
  66. end
  67.  
  68. it "should require a matching password confirmation" do
  69. User.new(@attr.merge(:password_confirmation => "invalid")).should_not be_valid
  70. end
  71.  
  72. it "should reject short passwords" do
  73. short = "a" * 5
  74. hash = @attr.merge(:password => short, :password_confirmation => short)
  75. User.new(hash).should_not be_valid
  76. end
  77.  
  78. it "should reject long passwords" do
  79. long = "a" * 41
  80. hash = @attr.merge(:password => long, :password_confirmation => long)
  81. User.new(hash).should_not be_valid
  82. end
  83. end
  84.  
  85.  
  86. # Password encryption tests
  87. describe "password encryption" do
  88.  
  89. before(:each) do
  90. @user = User.new(@attr)
  91. # @user = User.create!(@attr)
  92. p @user.save
  93. p @user
  94. end
  95.  
  96. it "should have a password_digest attribute" do
  97. @user.should respond_to(:password_digest)
  98. end
  99.  
  100. it "should set the password digest" do
  101. @user.password_digest.should_not be_blank
  102. end
  103. end
  104.  
  105. end
Add Comment
Please, Sign In to add comment