On 10/13/2011 01:30 PM, Chris Alfonso wrote:
---
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}(a)example.com" }
+ email "#{:login}@example.com"
+ #after_build { |u| u.email ||= "#{u.login}(a)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(a)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)
ACK