validations and tests for has_secure_password