Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. ## user.rb
  2. class User < ActiveRecord::Base
  3. validates_presence_of :username
  4. validates_presence_of :email
  5. validates_as_email :email
  6. validates_format_of :username, :with => /^[A-Za-z][\w_]{2,}$/
  7. validates_uniqueness_of :username, :message => "That username is already taken. Please try selecting another one"
  8. validates_uniqueness_of :email, :message => "That email is already signed up"
  9. end
  10.  
  11. ## user_spec.rb
  12. require File.dirname(__FILE__) '/../spec_helper'
  13.  
  14. module UserSpecHelper
  15. def valid_user_attributes
  16. {
  17. :email => 'joe@bloggs.com',
  18. :username => 'joebloggs',
  19. :password => 'abcdefg'
  20. }
  21. end
  22. end
  23.  
  24. context "A user (in general)" do
  25. fixtures :users
  26. include UserSpecHelper
  27.  
  28. setup do
  29. @user = User.new
  30. end
  31.  
  32. specify "should be invalid without a username" do
  33. @user.attributes = valid_user_attributes.except(:username)
  34. @user.should_not_be_valid
  35. @user.username = 'username'
  36. @user.should_be_valid
  37. end
  38.  
  39. specify "should be invalid without an email address" do
  40. @user.attributes = valid_user_attributes.except(:email)
  41. @user.should_not_be_valid
  42. @user.email = "bob@bob.com"
  43. @user.should_be_valid
  44. end
  45.  
  46. specify "should be invalid with a bad email address" do
  47. @user.attributes = valid_user_attributes.except(:email)
  48. @user.should_not_be_valid
  49. @user.email = "@bob.com"
  50. @user.should_not_be_valid
  51. @user.email = "Max@job 3:14"
  52. @user.should_not_be_valid
  53. @user.email = "bob@bob.com"
  54. @user.should_be_valid
  55. end
  56.  
  57. specify "should be invalid with a username clash" do
  58. @user.attributes = valid_user_attributes.except(:username)
  59. @user.username = "dave"
  60. @user.should_not_be_valid
  61. @user.errors.on(:username).should_match /That username is already taken. Please try selecting another one/
  62. @user.username = "unique"
  63. @user.should_be_valid
  64. end
  65.  
  66. specify "should be invalid with an email address clash" do
  67. @user.attributes = valid_user_attributes.except(:email)
  68. @user.email = "dave@bob.com"
  69. @user.should_not_be_valid
  70. @user.errors.on(:email).should_match /That email is already signed up/
  71. @user.email = "me@you.com"
  72. @user.should_be_valid
  73. end
  74.  
  75. specify "should be invalid with illegal characters in username" do
  76. @user.attributes = valid_user_attributes.except(:username)
  77. @user.username = "da"
  78. @user.should_not_be_valid
  79. @user.username = "dave thomas"
  80. @user.should_not_be_valid
  81. @user.username = "bob-woodward"
  82. @user.should_not_be_valid
  83. @user.username = "_dopefiend"
  84. @user.should_not_be_valid
  85. @user.username = "bob_lee"
  86. @user.should_be_valid
  87. end
  88. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement