user = User.find_or_initialize_by_identity_url(identity_url)
if user.new_record?
# Create on the fly
- user.login = registration['nickname']
- user.mail = registration['email']
- user.firstname, user.lastname = registration['fullname'].split(' ')
+ user.login = registration['nickname'] unless registration['nickname'].nil?
+ user.mail = registration['email'] unless registration['email'].nil?
+ user.firstname, user.lastname = registration['fullname'].split(' ') unless registration['fullname'].nil?
user.random_password
if user.save
successful_authentication(user)
end
def test_login_with_openid_with_new_user_created
-
+ post :login, :openid_url => 'http://openid.example.com/good_user'
+ assert_redirected_to 'my/page'
+ user = User.find_by_login('cool_user')
+ assert user
+ assert_equal 'Cool', user.firstname
+ assert_equal 'User', user.lastname
end
-
- def test_login_with_openid_with_new_user_with_conflict
+ def test_login_with_openid_with_new_user_with_conflict_should_register
+ existing_user = User.new(:firstname => 'Cool', :lastname => 'User', :mail => 'user@somedomain.com')
+ existing_user.login = 'cool_user'
+ assert existing_user.save!
+ post :login, :openid_url => 'http://openid.example.com/good_user'
+ assert_response :success
+ assert_template 'register'
+ assert assigns(:user)
+ assert_equal 'http://openid.example.com/good_user', assigns(:user)[:identity_url]
end
def test_autologin
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require 'test_help'
require File.expand_path(File.dirname(__FILE__) + '/helper_testcase')
-load File.join(RAILS_ROOT,'test', 'mocks', 'open_id_authentication_mock.rb')
+require File.join(RAILS_ROOT,'test', 'mocks', 'open_id_authentication_mock.rb')
class Test::Unit::TestCase
# Transactional fixtures accelerate your tests by wrapping each test method