require File.dirname(__FILE__) + '/../test_helper' class UserTest < Test::Unit::TestCase fixtures :users def test_auth assert_equal @bob, User.authenticate("bob", "test") assert_nil User.authenticate("nonbob", "test") end def test_disallowed_passwords u = User.new u.login = "nonbob" u.password = u.password_confirmation = "tiny" assert !u.save assert u.errors.invalid?('password') u.password = u.password_confirmation = "hugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehugehuge" assert !u.save assert u.errors.invalid?('password') u.password = u.password_confirmation = "" assert !u.save assert u.errors.invalid?('password') u.password = u.password_confirmation = "bobs_secure_password" assert u.save assert u.errors.empty? end def test_bad_logins u = User.new u.password = u.password_confirmation = "bobs_secure_password" u.login = "x" assert !u.save assert u.errors.invalid?('login') u.login = "hugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhugebobhug" assert !u.save assert u.errors.invalid?('login') u.login = "" assert !u.save assert u.errors.invalid?('login') u.login = "okbob" assert u.save assert u.errors.empty? end def test_collision u = User.new u.login = "existingbob" u.password = u.password_confirmation = "bobs_secure_password" assert !u.save end def test_create u = User.new u.login = "nonexistingbob" u.password = u.password_confirmation = "bobs_secure_password" assert u.save end def test_sha1 u = User.new u.login = "nonexistingbob" u.password = u.password_confirmation = "bobs_secure_password" assert u.save assert_equal '98740ff87bade6d895010bceebbd9f718e7856bb', u.password end end