--- src/app/models/user.rb | 5 +---- src/spec/factories/user.rb | 7 ++++++- src/spec/models/user_spec.rb | 22 ++++++++-------------- 3 files changed, 15 insertions(+), 19 deletions(-)
diff --git a/src/app/models/user.rb b/src/app/models/user.rb index ed7f4db..043b5f7 100644 --- a/src/app/models/user.rb +++ b/src/app/models/user.rb @@ -68,12 +68,9 @@ class User < ActiveRecord::Base validates_presence_of :quota validates_length_of :first_name, :maximum => 255, :allow_blank => true validates_length_of :last_name, :maximum => 255, :allow_blank => true - validates_uniqueness_of :login validates_length_of :login, :within => 1..100, :allow_blank => false - - #validates_uniqueness_of :email - + validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})\Z/i, :unless => Proc.new {|u| u.email.nil?} validates_confirmation_of :password, :if => Proc.new {|u| u.check_password?} validates_length_of :password, :within => 4..255, :if => Proc.new {|u| u.check_password?}
diff --git a/src/spec/factories/user.rb b/src/spec/factories/user.rb index b915ec0..9ac913a 100644 --- a/src/spec/factories/user.rb +++ b/src/spec/factories/user.rb @@ -25,7 +25,12 @@ FactoryGirl.define do first_name 'John' last_name 'Smith' association :quota - after_build { |u| u.email ||= "#{u.login}@example.com" } + email "#{:login}@example.com" + #after_build { |u| u.email ||= "#{u.login}@example.com" } + end + + factory :email_user , :parent => :user do + email = :email end
factory :other_named_user, :parent => :user do diff --git a/src/spec/models/user_spec.rb b/src/spec/models/user_spec.rb index 4d1b0d1..36f0ceb 100644 --- a/src/spec/models/user_spec.rb +++ b/src/spec/models/user_spec.rb @@ -44,22 +44,16 @@ describe User do user2.should_not be_valid end
- #it "should require unique email" do - # user1 = Factory.create(:tuser) - # user2 = Factory.create(:tuser) - # user1.should be_valid - # user2.should be_valid - - # user2.email = user1.email - # user2.should_not be_valid - #end - - #it "should requive valid email" do - # user = User.new(Factory.attributes_for(:tuser)) - - # user.email = "invalid-email" - # user.should_not be_valid - #end + it "should require valid email" do + user = FactoryGirl.create(:email_user) + user.should be_valid + + user = FactoryGirl.create(:email_user, :email => "foo@bar.org") + user.should be_valid + + user.email = "invalid" + user.should_not be_valid + end
it "should not be valid if first name is too long" do u = FactoryGirl.create(:tuser)