From 876fb69271edf6b5d7fe15fc68ee49e246d38f19 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 11 Feb 2009 19:07:23 +0000 Subject: [PATCH] Added tests for the other OpenID authentication cases. #699 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2445 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/account_controller.rb | 6 +++--- test/functional/account_controller_test.rb | 18 +++++++++++++++--- test/test_helper.rb | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index cdbca592..09c11927 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -201,9 +201,9 @@ private 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) diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 8de6f64b..e262b371 100644 --- a/test/functional/account_controller_test.rb +++ b/test/functional/account_controller_test.rb @@ -70,12 +70,24 @@ class AccountControllerTest < Test::Unit::TestCase 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 diff --git a/test/test_helper.rb b/test/test_helper.rb index 57866d49..ebc9bae4 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -19,7 +19,7 @@ ENV["RAILS_ENV"] ||= "test" 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 -- 2.11.0