diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-02-12 21:25:50 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-02-12 21:25:50 +0000 |
commit | ff9da0bab038ea118b839dd2d9e93a4d1a37e274 (patch) | |
tree | 291390f695c5abbbe5c2dad973e312923830694d /test/unit | |
parent | 5bdd4291624cabee530e1c40be79c19ba6fb09dd (diff) | |
download | redmine-ff9da0bab038ea118b839dd2d9e93a4d1a37e274.tar.gz redmine-ff9da0bab038ea118b839dd2d9e93a4d1a37e274.zip |
Removes the fat ruby-openid gem. Simply use 'gem install ruby-openid' to enable openid support.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2458 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/user_test.rb | 382 |
1 files changed, 194 insertions, 188 deletions
diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 515927ff2..6bf0e41fd 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -1,34 +1,34 @@ -# redMine - project management software -# Copyright (C) 2006 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.dirname(__FILE__) + '/../test_helper' - -class UserTest < Test::Unit::TestCase - fixtures :users, :members, :projects - - def setup - @admin = User.find(1) - @jsmith = User.find(2) - @dlopper = User.find(3) - end - - def test_truth - assert_kind_of User, @jsmith - end +# redMine - project management software
+# Copyright (C) 2006 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../test_helper'
+
+class UserTest < Test::Unit::TestCase
+ fixtures :users, :members, :projects
+
+ def setup
+ @admin = User.find(1)
+ @jsmith = User.find(2)
+ @dlopper = User.find(3)
+ end
+
+ def test_truth
+ assert_kind_of User, @jsmith
+ end
def test_create
user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
@@ -47,160 +47,166 @@ class UserTest < Test::Unit::TestCase user.password, user.password_confirmation = "password", "password"
assert user.save
- end - - def test_mail_uniqueness_should_not_be_case_sensitive - u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo") - u.login = 'newuser1' - u.password, u.password_confirmation = "password", "password" - assert u.save - - u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo") - u.login = 'newuser2' - u.password, u.password_confirmation = "password", "password" - assert !u.save - assert_equal 'activerecord_error_taken', u.errors.on(:mail) - end
- - def test_update - assert_equal "admin", @admin.login - @admin.login = "john" - assert @admin.save, @admin.errors.full_messages.join("; ") - @admin.reload - assert_equal "john", @admin.login - end - - def test_destroy - User.find(2).destroy - assert_nil User.find_by_id(2) - assert Member.find_all_by_user_id(2).empty? - end - - def test_validate - @admin.login = "" - assert !@admin.save - assert_equal 1, @admin.errors.count - end - - def test_password - user = User.try_to_login("admin", "admin") - assert_kind_of User, user - assert_equal "admin", user.login - user.password = "hello" - assert user.save - - user = User.try_to_login("admin", "hello") - assert_kind_of User, user - assert_equal "admin", user.login - assert_equal User.hash_password("hello"), user.hashed_password - end - - def test_name_format - assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname) - Setting.user_format = :firstname_lastname - assert_equal 'John Smith', @jsmith.reload.name - Setting.user_format = :username - assert_equal 'jsmith', @jsmith.reload.name - end - - def test_lock - user = User.try_to_login("jsmith", "jsmith") - assert_equal @jsmith, user - - @jsmith.status = User::STATUS_LOCKED - assert @jsmith.save - - user = User.try_to_login("jsmith", "jsmith") - assert_equal nil, user - end - - def test_create_anonymous - AnonymousUser.delete_all - anon = User.anonymous - assert !anon.new_record? - assert_kind_of AnonymousUser, anon - end - - def test_rss_key - assert_nil @jsmith.rss_token - key = @jsmith.rss_key - assert_equal 40, key.length - - @jsmith.reload - assert_equal key, @jsmith.rss_key - end - - def test_role_for_project - # user with a role - role = @jsmith.role_for_project(Project.find(1)) - assert_kind_of Role, role - assert_equal "Manager", role.name - - # user with no role - assert !@dlopper.role_for_project(Project.find(2)).member? - end - - def test_mail_notification_all - @jsmith.mail_notification = true - @jsmith.notified_project_ids = [] - @jsmith.save - @jsmith.reload - assert @jsmith.projects.first.recipients.include?(@jsmith.mail) - end - - def test_mail_notification_selected - @jsmith.mail_notification = false - @jsmith.notified_project_ids = [1] - @jsmith.save - @jsmith.reload - assert Project.find(1).recipients.include?(@jsmith.mail) - end - - def test_mail_notification_none - @jsmith.mail_notification = false - @jsmith.notified_project_ids = [] - @jsmith.save - @jsmith.reload - assert !@jsmith.projects.first.recipients.include?(@jsmith.mail) - end - - def test_comments_sorting_preference - assert !@jsmith.wants_comments_in_reverse_order? - @jsmith.pref.comments_sorting = 'asc' - assert !@jsmith.wants_comments_in_reverse_order? - @jsmith.pref.comments_sorting = 'desc' - assert @jsmith.wants_comments_in_reverse_order? - end - - def test_find_by_mail_should_be_case_insensitive - u = User.find_by_mail('JSmith@somenet.foo') - assert_not_nil u - assert_equal 'jsmith@somenet.foo', u.mail - end - - def test_random_password - u = User.new - u.random_password - assert !u.password.blank? - assert !u.password_confirmation.blank? - end - - def test_setting_identity_url - normalized_open_id_url = 'http://example.com/' - u = User.new( :identity_url => 'http://example.com/' ) - assert_equal normalized_open_id_url, u.identity_url - end - - def test_setting_identity_url_without_trailing_slash - normalized_open_id_url = 'http://example.com/' - u = User.new( :identity_url => 'http://example.com' ) - assert_equal normalized_open_id_url, u.identity_url - end - - def test_setting_identity_url_without_protocol - normalized_open_id_url = 'http://example.com/' - u = User.new( :identity_url => 'example.com' ) - assert_equal normalized_open_id_url, u.identity_url - end - -end + end
+
+ def test_mail_uniqueness_should_not_be_case_sensitive
+ u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
+ u.login = 'newuser1'
+ u.password, u.password_confirmation = "password", "password"
+ assert u.save
+
+ u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
+ u.login = 'newuser2'
+ u.password, u.password_confirmation = "password", "password"
+ assert !u.save
+ assert_equal 'activerecord_error_taken', u.errors.on(:mail)
+ end
+
+ def test_update
+ assert_equal "admin", @admin.login
+ @admin.login = "john"
+ assert @admin.save, @admin.errors.full_messages.join("; ")
+ @admin.reload
+ assert_equal "john", @admin.login
+ end
+
+ def test_destroy
+ User.find(2).destroy
+ assert_nil User.find_by_id(2)
+ assert Member.find_all_by_user_id(2).empty?
+ end
+
+ def test_validate
+ @admin.login = ""
+ assert !@admin.save
+ assert_equal 1, @admin.errors.count
+ end
+
+ def test_password
+ user = User.try_to_login("admin", "admin")
+ assert_kind_of User, user
+ assert_equal "admin", user.login
+ user.password = "hello"
+ assert user.save
+
+ user = User.try_to_login("admin", "hello")
+ assert_kind_of User, user
+ assert_equal "admin", user.login
+ assert_equal User.hash_password("hello"), user.hashed_password
+ end
+
+ def test_name_format
+ assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
+ Setting.user_format = :firstname_lastname
+ assert_equal 'John Smith', @jsmith.reload.name
+ Setting.user_format = :username
+ assert_equal 'jsmith', @jsmith.reload.name
+ end
+
+ def test_lock
+ user = User.try_to_login("jsmith", "jsmith")
+ assert_equal @jsmith, user
+
+ @jsmith.status = User::STATUS_LOCKED
+ assert @jsmith.save
+
+ user = User.try_to_login("jsmith", "jsmith")
+ assert_equal nil, user
+ end
+
+ def test_create_anonymous
+ AnonymousUser.delete_all
+ anon = User.anonymous
+ assert !anon.new_record?
+ assert_kind_of AnonymousUser, anon
+ end
+
+ def test_rss_key
+ assert_nil @jsmith.rss_token
+ key = @jsmith.rss_key
+ assert_equal 40, key.length
+
+ @jsmith.reload
+ assert_equal key, @jsmith.rss_key
+ end
+
+ def test_role_for_project
+ # user with a role
+ role = @jsmith.role_for_project(Project.find(1))
+ assert_kind_of Role, role
+ assert_equal "Manager", role.name
+
+ # user with no role
+ assert !@dlopper.role_for_project(Project.find(2)).member?
+ end
+
+ def test_mail_notification_all
+ @jsmith.mail_notification = true
+ @jsmith.notified_project_ids = []
+ @jsmith.save
+ @jsmith.reload
+ assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
+ end
+
+ def test_mail_notification_selected
+ @jsmith.mail_notification = false
+ @jsmith.notified_project_ids = [1]
+ @jsmith.save
+ @jsmith.reload
+ assert Project.find(1).recipients.include?(@jsmith.mail)
+ end
+
+ def test_mail_notification_none
+ @jsmith.mail_notification = false
+ @jsmith.notified_project_ids = []
+ @jsmith.save
+ @jsmith.reload
+ assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
+ end
+
+ def test_comments_sorting_preference
+ assert !@jsmith.wants_comments_in_reverse_order?
+ @jsmith.pref.comments_sorting = 'asc'
+ assert !@jsmith.wants_comments_in_reverse_order?
+ @jsmith.pref.comments_sorting = 'desc'
+ assert @jsmith.wants_comments_in_reverse_order?
+ end
+
+ def test_find_by_mail_should_be_case_insensitive
+ u = User.find_by_mail('JSmith@somenet.foo')
+ assert_not_nil u
+ assert_equal 'jsmith@somenet.foo', u.mail
+ end
+
+ def test_random_password
+ u = User.new
+ u.random_password
+ assert !u.password.blank?
+ assert !u.password_confirmation.blank?
+ end
+
+ if Object.const_defined?(:OpenID)
+
+ def test_setting_identity_url
+ normalized_open_id_url = 'http://example.com/'
+ u = User.new( :identity_url => 'http://example.com/' )
+ assert_equal normalized_open_id_url, u.identity_url
+ end
+
+ def test_setting_identity_url_without_trailing_slash
+ normalized_open_id_url = 'http://example.com/'
+ u = User.new( :identity_url => 'http://example.com' )
+ assert_equal normalized_open_id_url, u.identity_url
+ end
+
+ def test_setting_identity_url_without_protocol
+ normalized_open_id_url = 'http://example.com/'
+ u = User.new( :identity_url => 'example.com' )
+ assert_equal normalized_open_id_url, u.identity_url
+ end
+
+ else
+ puts "Skipping openid tests."
+ end
+
+end
|