songtianlun
712cd10894
- Updated single quotes to double quotes for consistency - Adjusted spacing in array definitions for better readability - Ensured consistent use of quotes in flash messages and method parameters These changes enhance the overall code style without altering any functionality.
81 lines
2.2 KiB
Ruby
81 lines
2.2 KiB
Ruby
require "test_helper"
|
|
|
|
class UserTest < ActiveSupport::TestCase
|
|
# test "the truth" do
|
|
# assert true
|
|
# end
|
|
def setup
|
|
@user = User.new(name: "Example User", email: "user@example.com",
|
|
password: "foobar", password_confirmation: "foobar")
|
|
end
|
|
|
|
test "should be valid" do
|
|
assert @user.valid?
|
|
end
|
|
|
|
test "name should be present" do
|
|
@user.name = " " * 6
|
|
assert_not @user.valid?
|
|
end
|
|
|
|
test "email should be present" do
|
|
@user.email = " " * 6
|
|
assert_not @user.valid?
|
|
end
|
|
|
|
test "name should not be too long" do
|
|
@user.name = "a" * 51
|
|
assert_not @user.valid?
|
|
end
|
|
|
|
test "email should not be too long" do
|
|
@user.email = "a" * 244 + "@example.com"
|
|
assert_not @user.valid?
|
|
end
|
|
|
|
test "email validation should accept valid addresses" do
|
|
valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org
|
|
first.last@foo.cn alice+bob@baz.cn]
|
|
valid_addresses.each do |valid_address|
|
|
@user.email = valid_address
|
|
assert @user.valid?, "#{valid_address.inspect} should be valid"
|
|
end
|
|
end
|
|
|
|
test "email validation should reject invalid addresses" do
|
|
invalid_addresses = %w[user@example,com user_at_foo.org user.name@example.
|
|
foo@bar_baz.com foo@bar+baz.com foo@bar...cc]
|
|
invalid_addresses.each do |invalid_address|
|
|
@user.email = invalid_address
|
|
assert_not @user.valid?, "#{invalid_address.inspect} should be invalid"
|
|
end
|
|
end
|
|
|
|
test "email addresses should be unique" do
|
|
duplicate_user = @user.dup
|
|
@user.save
|
|
assert_not duplicate_user.valid?
|
|
end
|
|
|
|
test "email addresses should be saved as lower-case" do
|
|
mixed_case_email = "Foo@ExAMPle.CoM"
|
|
@user.email = mixed_case_email
|
|
@user.save
|
|
assert_equal mixed_case_email.downcase, @user.reload.email
|
|
end
|
|
|
|
test "password should be present (non blank)" do
|
|
@user.password = @user.password_confirmation = " " * 6
|
|
assert_not @user.valid?
|
|
end
|
|
|
|
test "password should have a minimum length" do
|
|
@user.password = @user.password_confirmation = " " * 5
|
|
assert_not @user.valid?
|
|
end
|
|
|
|
test "authenticated? should return false for a user with nil digest" do
|
|
assert_not @user.authenticated?("")
|
|
end
|
|
end
|