11require 'spec_helper'
22
33describe User do
4-
4+
55 before ( :each ) do
6- @attr = {
6+ @attr = {
77 :name => "Example User" ,
88 :email => "user@example.com" ,
9- :password => "foobar " ,
10- :password_confirmation => "foobar "
9+ :password => "changeme " ,
10+ :password_confirmation => "changeme "
1111 }
1212 end
13-
13+
1414 it "should create a new instance given a valid attribute" do
1515 User . create! ( @attr )
1616 end
17-
17+
1818 it "should require an email address" do
1919 no_email_user = User . new ( @attr . merge ( :email => "" ) )
2020 no_email_user . should_not be_valid
2121 end
22-
22+
2323 it "should accept valid email addresses" do
2424 addresses = %w[ user@foo.com THE_USER@foo.bar.org first.last@foo.jp ]
2525 addresses . each do |address |
2626 valid_email_user = User . new ( @attr . merge ( :email => address ) )
2727 valid_email_user . should be_valid
2828 end
2929 end
30-
30+
3131 it "should reject invalid email addresses" do
3232 addresses = %w[ user@foo,com user_at_foo.org example.user@foo. ]
3333 addresses . each do |address |
3434 invalid_email_user = User . new ( @attr . merge ( :email => address ) )
3535 invalid_email_user . should_not be_valid
3636 end
3737 end
38-
38+
3939 it "should reject duplicate email addresses" do
4040 User . create! ( @attr )
4141 user_with_duplicate_email = User . new ( @attr )
4242 user_with_duplicate_email . should_not be_valid
4343 end
44-
44+
4545 it "should reject email addresses identical up to case" do
4646 upcased_email = @attr [ :email ] . upcase
4747 User . create! ( @attr . merge ( :email => upcased_email ) )
4848 user_with_duplicate_email = User . new ( @attr )
4949 user_with_duplicate_email . should_not be_valid
5050 end
51-
51+
5252 describe "passwords" do
5353
5454 before ( :each ) do
6363 @user . should respond_to ( :password_confirmation )
6464 end
6565 end
66-
66+
6767 describe "password validations" do
6868
6969 it "should require a password" do
7575 User . new ( @attr . merge ( :password_confirmation => "invalid" ) ) .
7676 should_not be_valid
7777 end
78-
78+
7979 it "should reject short passwords" do
8080 short = "a" * 5
8181 hash = @attr . merge ( :password => short , :password_confirmation => short )
8282 User . new ( hash ) . should_not be_valid
8383 end
84-
84+
8585 end
86-
86+
8787 describe "password encryption" do
88-
88+
8989 before ( :each ) do
9090 @user = User . create! ( @attr )
9191 end
92-
92+
9393 it "should have an encrypted password attribute" do
9494 @user . should respond_to ( :encrypted_password )
9595 end
100100
101101 end
102102
103- end
103+ end
0 commit comments