From d643d9a94c658948f26686f1c0d746a6fd80cacb Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 15 Feb 2009 18:46:50 +0000 Subject: [PATCH] Fixed: User#identity_url raises an error when invalid url is supplied (#2742). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2476 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/user.rb | 12 ++++++++---- test/unit/user_test.rb | 11 +++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 4f8223dc0..32cc08b11 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -81,10 +81,14 @@ class User < ActiveRecord::Base end def identity_url=(url) - begin - self.write_attribute(:identity_url, OpenIdAuthentication.normalize_identifier(url)) - rescue InvalidOpenId - # Invlaid url, don't save + if url.blank? + write_attribute(:identity_url, '') + else + begin + write_attribute(:identity_url, OpenIdAuthentication.normalize_identifier(url)) + rescue OpenIdAuthentication::InvalidOpenId + # Invlaid url, don't save + end end self.read_attribute(:identity_url) end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 6bf0e41fd..fd3403709 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -204,6 +204,17 @@ class UserTest < Test::Unit::TestCase u = User.new( :identity_url => 'example.com' ) assert_equal normalized_open_id_url, u.identity_url end + + def test_setting_blank_identity_url + u = User.new( :identity_url => 'example.com' ) + u.identity_url = '' + assert u.identity_url.blank? + end + + def test_setting_invalid_identity_url + u = User.new( :identity_url => 'this is not an openid url' ) + assert u.identity_url.blank? + end else puts "Skipping openid tests." -- 2.39.5