##// END OF EJS Templates
Fixed that rss key is generated twice when user is not reloaded (#10668)....
Fixed that rss key is generated twice when user is not reloaded (#10668). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9419 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9285:24c361eb0a12
r9285:24c361eb0a12
Show More
user_test.rb
1008 lines | 32.1 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Fixed: "Notifiy for only project I select" is randomly displayed (#7294)....
r4607 # Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
Adds missing native eol properties....
r2781 #
# 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.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595 #
Jean-Philippe Lang
Adds missing native eol properties....
r2781 # 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.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595 #
Jean-Philippe Lang
Adds missing native eol properties....
r2781 # 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.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Adds missing native eol properties....
r2781
class UserTest < ActiveSupport::TestCase
Toshi MARUYAMA
add missing fixtures at unit user test in running on empty database...
r7325 fixtures :users, :members, :projects, :roles, :member_roles, :auth_sources,
:trackers, :issue_statuses,
:projects_trackers,
:watchers,
:issue_categories, :enumerations, :issues,
:journals, :journal_details,
:groups_users,
:enabled_modules,
:workflows
Jean-Philippe Lang
Adds missing native eol properties....
r2781
def setup
@admin = User.find(1)
@jsmith = User.find(2)
@dlopper = User.find(3)
end
Eric Davis
Fixed a typo in Object daddy...
r2896
test 'object_daddy creation' do
User.generate_with_protected!(:firstname => 'Testing connection')
User.generate_with_protected!(:firstname => 'Testing connection')
assert_equal 2, User.count(:all, :conditions => {:firstname => 'Testing connection'})
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_truth
assert_kind_of User, @jsmith
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Strips user email (#5834)....
r3759 def test_mail_should_be_stripped
u = User.new
u.mail = " foo@bar.com "
assert_equal "foo@bar.com", u.mail
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Do not show 2 validation errors when user mail is blank....
r6048 def test_mail_validation
u = User.new
u.mail = ''
assert !u.valid?
Jean-Philippe Lang
Changed assertions to make them work with Rails2/3 ruby1.8/1.9 different behaviours....
r8987 assert_include I18n.translate('activerecord.errors.messages.blank'), u.errors[:mail]
Jean-Philippe Lang
Do not show 2 validation errors when user mail is blank....
r6048 end
Jean-Philippe Lang
Adds missing native eol properties....
r2781
Jean-Philippe Lang
Increase username length limit from 30 to 60 (#2719)....
r8658 def test_login_length_validation
user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
user.login = "x" * (User::LOGIN_LENGTH_LIMIT+1)
assert !user.valid?
user.login = "x" * (User::LOGIN_LENGTH_LIMIT)
assert user.valid?
assert user.save
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_create
user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 user.login = "jsmith"
user.password, user.password_confirmation = "password", "password"
# login uniqueness
assert !user.save
assert_equal 1, user.errors.count
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 user.login = "newuser"
user.password, user.password_confirmation = "passwd", "password"
# password confirmation
assert !user.save
assert_equal 1, user.errors.count
user.password, user.password_confirmation = "password", "password"
assert user.save
end
Eric Davis
Add a default mail notification setting for new users...
r4105
context "User#before_create" do
should "set the mail_notification to the default Setting" do
@user1 = User.generate_with_protected!
assert_equal 'only_my_events', @user1.mail_notification
with_settings :default_notification_option => 'all' do
@user2 = User.generate_with_protected!
assert_equal 'all', @user2.mail_notification
end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Change User#login to be case-insensitive. #2473...
r3693 context "User.login" do
should "be case-insensitive." do
u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
u.login = 'newuser'
u.password, u.password_confirmation = "password", "password"
assert u.save
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Change User#login to be case-insensitive. #2473...
r3693 u = User.new(:firstname => "Similar", :lastname => "User", :mail => "similaruser@somenet.foo")
u.login = 'NewUser'
u.password, u.password_confirmation = "password", "password"
assert !u.save
Jean-Philippe Lang
Changed assertions to make them work with Rails2/3 ruby1.8/1.9 different behaviours....
r8987 assert_include I18n.translate('activerecord.errors.messages.taken'), u.errors[:login]
Eric Davis
Change User#login to be case-insensitive. #2473...
r3693 end
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 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
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
u.login = 'newuser2'
u.password, u.password_confirmation = "password", "password"
assert !u.save
Jean-Philippe Lang
Changed assertions to make them work with Rails2/3 ruby1.8/1.9 different behaviours....
r8987 assert_include I18n.translate('activerecord.errors.messages.taken'), u.errors[:mail]
Jean-Philippe Lang
Adds missing native eol properties....
r2781 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
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_delete_members_and_roles
members = Member.find_all_by_user_id(2)
ms = members.size
rs = members.collect(&:roles).flatten.size
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 assert_difference 'Member.count', - ms do
assert_difference 'MemberRole.count', - rs do
User.find(2).destroy
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_nil User.find_by_id(2)
assert Member.find_all_by_user_id(2).empty?
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_attachments
attachment = Attachment.create!(:container => Project.find(1),
:file => uploaded_test_file("testfile.txt", "text/plain"),
:author_id => 2)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, attachment.reload.author
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_comments
comment = Comment.create!(
:commented => News.create!(:project_id => 1, :author_id => 1, :title => 'foo', :description => 'foo'),
:author => User.find(2),
:comments => 'foo'
)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, comment.reload.author
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_issues
issue = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'foo')
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, issue.reload.author
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_unassign_issues
issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo', :assigned_to_id => 2)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_nil issue.reload.assigned_to
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_journals
issue = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'foo')
issue.init_journal(User.find(2), "update")
issue.save!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, issue.journals.first.reload.user
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_journal_details_old_value
issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo', :assigned_to_id => 2)
issue.init_journal(User.find(1), "update")
issue.assigned_to_id = nil
assert_difference 'JournalDetail.count' do
issue.save!
end
journal_detail = JournalDetail.first(:order => 'id DESC')
assert_equal '2', journal_detail.old_value
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous.id.to_s, journal_detail.reload.old_value
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_journal_details_value
issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo')
issue.init_journal(User.find(1), "update")
issue.assigned_to_id = 2
assert_difference 'JournalDetail.count' do
issue.save!
end
journal_detail = JournalDetail.first(:order => 'id DESC')
assert_equal '2', journal_detail.value
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous.id.to_s, journal_detail.reload.value
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_messages
board = Board.create!(:project_id => 1, :name => 'Board', :description => 'Board')
message = Message.create!(:board_id => board.id, :author_id => 2, :subject => 'foo', :content => 'foo')
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, message.reload.author
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_news
news = News.create!(:project_id => 1, :author_id => 2, :title => 'foo', :description => 'foo')
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, news.reload.author
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_delete_private_queries
query = Query.new(:name => 'foo', :is_public => false)
query.project_id = 1
query.user_id = 2
query.save!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_nil Query.find_by_id(query.id)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_public_queries
query = Query.new(:name => 'foo', :is_public => true)
query.project_id = 1
query.user_id = 2
query.save!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, query.reload.user
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_time_entries
entry = TimeEntry.new(:hours => '2', :spent_on => Date.today, :activity => TimeEntryActivity.create!(:name => 'foo'))
entry.project_id = 1
entry.user_id = 2
entry.save!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, entry.reload.user
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_delete_tokens
token = Token.create!(:user_id => 2, :value => 'foo')
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_nil Token.find_by_id(token.id)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_delete_watchers
issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo')
watcher = Watcher.create!(:user_id => 2, :watchable => issue)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_nil Watcher.find_by_id(watcher.id)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_update_wiki_contents
wiki_content = WikiContent.create!(
:text => 'foo',
:author_id => 2,
:page => WikiPage.create!(:title => 'Foo', :wiki => Wiki.create!(:project_id => 1, :start_page => 'Start'))
)
wiki_content.text = 'bar'
assert_difference 'WikiContent::Version.count' do
wiki_content.save!
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_equal User.anonymous, wiki_content.reload.author
wiki_content.versions.each do |version|
assert_equal User.anonymous, version.reload.author
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_nullify_issue_categories
category = IssueCategory.create!(:project_id => 1, :assigned_to_id => 2, :name => 'foo')
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_nil category.reload.assigned_to_id
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_destroy_should_nullify_changesets
changeset = Changeset.create!(
Jean-Philippe Lang
Adds support for multiple repositories per project (#779)....
r8530 :repository => Repository::Subversion.generate!(
:project_id => 1
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 ),
:revision => '12',
:committed_on => Time.now,
:committer => 'jsmith'
)
assert_equal 2, changeset.user_id
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 User.find(2).destroy
assert_nil User.find_by_id(2)
assert_nil changeset.reload.user_id
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
When destroying a user, remove all references to that user (#7296)....
r4606 def test_anonymous_user_should_not_be_destroyable
assert_no_difference 'User.count' do
assert_equal false, User.anonymous.destroy
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 def test_validate_login_presence
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @admin.login = ""
assert !@admin.save
assert_equal 1, @admin.errors.count
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 def test_validate_mail_notification_inclusion
u = User.new
u.mail_notification = 'foo'
u.save
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at test_validate_mail_notification_inclusion of unit/user_test.rb...
r7473 assert_not_nil u.errors[:mail_notification]
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Change User#login to be case-insensitive. #2473...
r3693 context "User#try_to_login" do
should "fall-back to case-insensitive if user login is not found as-typed." do
user = User.try_to_login("AdMin", "admin")
assert_kind_of User, user
assert_equal "admin", user.login
end
should "select the exact matching user first" do
Toshi MARUYAMA
code layout clean up of test/unit/user_test.rb...
r7472 case_sensitive_user = User.generate_with_protected!(
:login => 'changed', :password => 'admin',
:password_confirmation => 'admin')
Eric Davis
Change User#login to be case-insensitive. #2473...
r3693 # bypass validations to make it appear like existing data
case_sensitive_user.update_attribute(:login, 'ADMIN')
user = User.try_to_login("ADMIN", "admin")
assert_kind_of User, user
assert_equal "ADMIN", user.login
end
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 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
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 user = User.try_to_login("admin", "hello")
assert_kind_of User, user
assert_equal "admin", user.login
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Toshi MARUYAMA
add test of validate password length at unit user test...
r7310 def test_validate_password_length
with_settings :password_min_length => '100' do
user = User.new(:firstname => "new100", :lastname => "user100", :mail => "newuser100@somenet.foo")
user.login = "newuser100"
user.password, user.password_confirmation = "password100", "password100"
assert !user.save
assert_equal 1, user.errors.count
end
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_name_format
assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
Jean-Philippe Lang
Don't change setting value in tests....
r7943 with_settings :user_format => :firstname_lastname do
assert_equal 'John Smith', @jsmith.reload.name
end
with_settings :user_format => :username do
assert_equal 'jsmith', @jsmith.reload.name
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Jean-Philippe Lang
Sort the issue list by author/assignee according to user display format (#9669)....
r7818
def test_fields_for_order_statement_should_return_fields_according_user_format_setting
with_settings :user_format => 'lastname_coma_firstname' do
assert_equal ['users.lastname', 'users.firstname', 'users.id'], User.fields_for_order_statement
end
end
def test_fields_for_order_statement_width_table_name_should_prepend_table_name
with_settings :user_format => 'lastname_firstname' do
assert_equal ['authors.lastname', 'authors.firstname', 'authors.id'], User.fields_for_order_statement('authors')
end
end
def test_fields_for_order_statement_with_blank_format_should_return_default
with_settings :user_format => '' do
assert_equal ['users.firstname', 'users.lastname', 'users.id'], User.fields_for_order_statement
end
end
def test_fields_for_order_statement_with_invalid_format_should_return_default
with_settings :user_format => 'foo' do
assert_equal ['users.firstname', 'users.lastname', 'users.id'], User.fields_for_order_statement
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_lock
user = User.try_to_login("jsmith", "jsmith")
assert_equal @jsmith, user
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @jsmith.status = User::STATUS_LOCKED
assert @jsmith.save
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 user = User.try_to_login("jsmith", "jsmith")
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595 assert_equal nil, user
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds random salt to user passwords (#7410)....
r4816 context ".try_to_login" do
context "with good credentials" do
should "return the user" do
user = User.try_to_login("admin", "admin")
assert_kind_of User, user
assert_equal "admin", user.login
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds random salt to user passwords (#7410)....
r4816 context "with wrong credentials" do
should "return nil" do
assert_nil User.try_to_login("admin", "foo")
end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Fix LDAP on the fly creation. The User object doesn't have a :dn attribute....
r3371 if ldap_configured?
context "#try_to_login using LDAP" do
Eric Davis
Add some tests for User#try_to_login with LDAP. #5592...
r3705 context "with failed connection to the LDAP server" do
should "return nil" do
@auth_source = AuthSourceLdap.find(1)
AuthSource.any_instance.stubs(:initialize_ldap_con).raises(Net::LDAP::LdapError, 'Cannot connect')
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Add some tests for User#try_to_login with LDAP. #5592...
r3705 assert_equal nil, User.try_to_login('edavis', 'wrong')
end
end
context "with an unsuccessful authentication" do
should "return nil" do
assert_equal nil, User.try_to_login('edavis', 'wrong')
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
LDAP: adds the ability to bind with user's account (#1913)....
r9121 context "binding with user's account" do
setup do
@auth_source = AuthSourceLdap.find(1)
@auth_source.account = "uid=$login,ou=Person,dc=redmine,dc=org"
@auth_source.account_password = ''
@auth_source.save!
@ldap_user = User.new(:mail => 'example1@redmine.org', :firstname => 'LDAP', :lastname => 'user', :auth_source_id => 1)
@ldap_user.login = 'example1'
@ldap_user.save!
end
context "with a successful authentication" do
should "return the user" do
assert_equal @ldap_user, User.try_to_login('example1', '123456')
end
end
context "with an unsuccessful authentication" do
Jean-Philippe Lang
Fixed test names (#1913)....
r9122 should "return nil" do
Jean-Philippe Lang
LDAP: adds the ability to bind with user's account (#1913)....
r9121 assert_nil User.try_to_login('example1', '11111')
end
end
end
Eric Davis
Fix LDAP on the fly creation. The User object doesn't have a :dn attribute....
r3371 context "on the fly registration" do
setup do
Jean-Philippe Lang
Moves the LDAP test server to a fixture....
r3376 @auth_source = AuthSourceLdap.find(1)
Jean-Philippe Lang
Fixes LDAP test....
r8925 @auth_source.update_attribute :onthefly_register, true
Eric Davis
Fix LDAP on the fly creation. The User object doesn't have a :dn attribute....
r3371 end
context "with a successful authentication" do
Jean-Philippe Lang
Check that admin LDAP user is untouched after authentication (#5263)....
r3520 should "create a new user account if it doesn't exist" do
Eric Davis
Fix LDAP on the fly creation. The User object doesn't have a :dn attribute....
r3371 assert_difference('User.count') do
Jean-Philippe Lang
Check that admin LDAP user is untouched after authentication (#5263)....
r3520 user = User.try_to_login('edavis', '123456')
assert !user.admin?
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Check that admin LDAP user is untouched after authentication (#5263)....
r3520 should "retrieve existing user" do
user = User.try_to_login('edavis', '123456')
user.admin = true
user.save!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Check that admin LDAP user is untouched after authentication (#5263)....
r3520 assert_no_difference('User.count') do
user = User.try_to_login('edavis', '123456')
assert user.admin?
Eric Davis
Fix LDAP on the fly creation. The User object doesn't have a :dn attribute....
r3371 end
end
end
Jean-Philippe Lang
LDAP: adds the ability to bind with user's account (#1913)....
r9121
context "binding with user's account" do
setup do
@auth_source = AuthSourceLdap.find(1)
@auth_source.account = "uid=$login,ou=Person,dc=redmine,dc=org"
@auth_source.account_password = ''
@auth_source.save!
end
context "with a successful authentication" do
should "create a new user account if it doesn't exist" do
assert_difference('User.count') do
user = User.try_to_login('example1', '123456')
assert_kind_of User, user
end
end
end
context "with an unsuccessful authentication" do
Jean-Philippe Lang
Fixed test names (#1913)....
r9122 should "return nil" do
Jean-Philippe Lang
LDAP: adds the ability to bind with user's account (#1913)....
r9121 assert_nil User.try_to_login('example1', '11111')
end
end
end
Eric Davis
Fix LDAP on the fly creation. The User object doesn't have a :dn attribute....
r3371 end
end
else
puts "Skipping LDAP tests."
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_create_anonymous
AnonymousUser.delete_all
anon = User.anonymous
assert !anon.new_record?
assert_kind_of AnonymousUser, anon
end
Eric Davis
Added an API token for each User to use when making API requests. (#3920)...
r3103
Toshi MARUYAMA
add test to ensure single anonymous user at unit user test...
r7323 def test_ensure_single_anonymous_user
AnonymousUser.delete_all
anon1 = User.anonymous
assert !anon1.new_record?
assert_kind_of AnonymousUser, anon1
Toshi MARUYAMA
more strict test to ensure single anonymous user at unit user test...
r7324 anon2 = AnonymousUser.create(
Toshi MARUYAMA
add test to ensure single anonymous user at unit user test...
r7323 :lastname => 'Anonymous', :firstname => '',
:mail => '', :login => '', :status => 0)
Toshi MARUYAMA
more strict test to ensure single anonymous user at unit user test...
r7324 assert_equal 1, anon2.errors.count
Toshi MARUYAMA
add test to ensure single anonymous user at unit user test...
r7323 end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_rss_key
assert_nil @jsmith.rss_token
key = @jsmith.rss_key
assert_equal 40, key.length
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @jsmith.reload
assert_equal key, @jsmith.rss_key
end
Eric Davis
Added an API token for each User to use when making API requests. (#3920)...
r3103
Jean-Philippe Lang
Fixed that rss key is generated twice when user is not reloaded (#10668)....
r9285 def test_rss_key_should_not_be_generated_twice
assert_difference 'Token.count', 1 do
key1 = @jsmith.rss_key
key2 = @jsmith.rss_key
assert_equal key1, key2
end
end
def test_api_key_should_not_be_generated_twice
assert_difference 'Token.count', 1 do
key1 = @jsmith.api_key
key2 = @jsmith.api_key
assert_equal key1, key2
end
end
Eric Davis
Added an API token for each User to use when making API requests. (#3920)...
r3103 context "User#api_key" do
should "generate a new one if the user doesn't have one" do
user = User.generate_with_protected!(:api_token => nil)
assert_nil user.api_token
key = user.api_key
assert_equal 40, key.length
user.reload
assert_equal key, user.api_key
end
should "return the existing api token value" do
user = User.generate_with_protected!
token = Token.generate!(:action => 'api')
user.api_token = token
assert user.save
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added an API token for each User to use when making API requests. (#3920)...
r3103 assert_equal token.value, user.api_key
end
end
context "User#find_by_api_key" do
should "return nil if no matching key is found" do
assert_nil User.find_by_api_key('zzzzzzzzz')
end
should "return nil if the key is found for an inactive user" do
user = User.generate_with_protected!(:status => User::STATUS_LOCKED)
token = Token.generate!(:action => 'api')
user.api_token = token
user.save
assert_nil User.find_by_api_key(token.value)
end
should "return the user if the key is found for an active user" do
user = User.generate_with_protected!(:status => User::STATUS_ACTIVE)
token = Token.generate!(:action => 'api')
user.api_token = token
user.save
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added an API token for each User to use when making API requests. (#3920)...
r3103 assert_equal user, User.find_by_api_key(token.value)
end
end
Jean-Philippe Lang
Fixed that "Default administrator account changed" is always true (#10622)....
r9245 def test_default_admin_account_changed_should_return_false_if_account_was_not_changed
user = User.find_by_login("admin")
user.password = "admin"
user.save!
assert_equal false, User.default_admin_account_changed?
end
def test_default_admin_account_changed_should_return_true_if_password_was_changed
user = User.find_by_login("admin")
user.password = "newpassword"
user.save!
assert_equal true, User.default_admin_account_changed?
end
def test_default_admin_account_changed_should_return_true_if_account_is_disabled
user = User.find_by_login("admin")
user.password = "admin"
user.status = User::STATUS_LOCKED
user.save!
assert_equal true, User.default_admin_account_changed?
end
def test_default_admin_account_changed_should_return_true_if_account_does_not_exist
user = User.find_by_login("admin")
user.destroy
assert_equal true, User.default_admin_account_changed?
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_roles_for_project
# user with a role
roles = @jsmith.roles_for_project(Project.find(1))
assert_kind_of Role, roles.first
assert_equal "Manager", roles.first.name
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 # user with no role
assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Changed the way the visibility SQL statement is built....
r5020 def test_projects_by_role_for_user_with_role
user = User.find(2)
assert_kind_of Hash, user.projects_by_role
assert_equal 2, user.projects_by_role.size
assert_equal [1,5], user.projects_by_role[Role.find(1)].collect(&:id).sort
assert_equal [2], user.projects_by_role[Role.find(2)].collect(&:id).sort
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Changed the way the visibility SQL statement is built....
r5020 def test_projects_by_role_for_user_with_no_role
user = User.generate!
assert_equal({}, user.projects_by_role)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Changed the way the visibility SQL statement is built....
r5020 def test_projects_by_role_for_anonymous
assert_equal({}, User.anonymous.projects_by_role)
end
Jean-Philippe Lang
Fixed: "Notifiy for only project I select" is randomly displayed (#7294)....
r4607 def test_valid_notification_options
# without memberships
assert_equal 5, User.find(7).valid_notification_options.size
# with memberships
assert_equal 6, User.find(2).valid_notification_options.size
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Do not show "for only project I select" notification option on application settings form (#7294)....
r4610 def test_valid_notification_options_class_method
assert_equal 5, User.valid_notification_options.size
assert_equal 5, User.valid_notification_options(User.find(7)).size
assert_equal 6, User.valid_notification_options(User.find(2)).size
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_mail_notification_all
Eric Davis
Converted User#mail_notification from a boolean to a string....
r4102 @jsmith.mail_notification = 'all'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @jsmith.notified_project_ids = []
@jsmith.save
@jsmith.reload
assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_mail_notification_selected
Eric Davis
Converted User#mail_notification from a boolean to a string....
r4102 @jsmith.mail_notification = 'selected'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @jsmith.notified_project_ids = [1]
@jsmith.save
@jsmith.reload
assert Project.find(1).recipients.include?(@jsmith.mail)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Converted User#mail_notification from a boolean to a string....
r4102 def test_mail_notification_only_my_events
@jsmith.mail_notification = 'only_my_events'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @jsmith.notified_project_ids = []
@jsmith.save
@jsmith.reload
assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 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
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 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
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_random_password
u = User.new
u.random_password
assert !u.password.blank?
assert !u.password_confirmation.blank?
end
Eric Davis
Allow AuthSources to control if they allow password changes....
r3631
context "#change_password_allowed?" do
should "be allowed if no auth source is set" do
user = User.generate_with_protected!
assert user.change_password_allowed?
end
should "delegate to the auth source" do
user = User.generate_with_protected!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Allow AuthSources to control if they allow password changes....
r3631 allowed_auth_source = AuthSource.generate!
def allowed_auth_source.allow_password_changes?; true; end
denied_auth_source = AuthSource.generate!
def denied_auth_source.allow_password_changes?; false; end
assert user.change_password_allowed?
user.auth_source = allowed_auth_source
assert user.change_password_allowed?, "User not allowed to change password, though auth source does"
user.auth_source = denied_auth_source
assert !user.change_password_allowed?, "User allowed to change password, though auth source does not"
end
Jean-Philippe Lang
Adds the ability for users to delete their own account (#10664). Can be disabled in application settings....
r9283 end
def test_own_account_deletable_should_be_true_with_unsubscrive_enabled
with_settings :unsubscribe => '1' do
assert_equal true, User.find(2).own_account_deletable?
end
end
def test_own_account_deletable_should_be_false_with_unsubscrive_disabled
with_settings :unsubscribe => '0' do
assert_equal false, User.find(2).own_account_deletable?
end
end
Eric Davis
Allow AuthSources to control if they allow password changes....
r3631
Jean-Philippe Lang
Adds the ability for users to delete their own account (#10664). Can be disabled in application settings....
r9283 def test_own_account_deletable_should_be_false_for_a_single_admin
User.delete_all(["admin = ? AND id <> ?", true, 1])
with_settings :unsubscribe => '1' do
assert_equal false, User.find(1).own_account_deletable?
end
end
def test_own_account_deletable_should_be_true_for_an_admin_if_other_admin_exists
User.generate_with_protected(:admin => true)
with_settings :unsubscribe => '1' do
assert_equal true, User.find(1).own_account_deletable?
end
Eric Davis
Allow AuthSources to control if they allow password changes....
r3631 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Added missing tests for User#allowed_to? #6291...
r3944 context "#allowed_to?" do
context "with a unique project" do
should "return false if project is archived" do
project = Project.find(1)
Project.any_instance.stubs(:status).returns(Project::STATUS_ARCHIVED)
assert ! @admin.allowed_to?(:view_issues, Project.find(1))
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Added missing tests for User#allowed_to? #6291...
r3944 should "return false if related module is disabled" do
project = Project.find(1)
project.enabled_module_names = ["issue_tracking"]
assert @admin.allowed_to?(:add_issues, project)
assert ! @admin.allowed_to?(:view_wiki_pages, project)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Added missing tests for User#allowed_to? #6291...
r3944 should "authorize nearly everything for admin users" do
project = Project.find(1)
assert ! @admin.member_of?(project)
%w(edit_issues delete_issues manage_news manage_documents manage_wiki).each do |p|
assert @admin.allowed_to?(p.to_sym, project)
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Added missing tests for User#allowed_to? #6291...
r3944 should "authorize normal users depending on their roles" do
project = Project.find(1)
assert @jsmith.allowed_to?(:delete_messages, project) #Manager
assert ! @dlopper.allowed_to?(:delete_messages, project) #Developper
end
end
Jean-Baptiste Barth
Added ability to specify multiple projects in User#allowed_to? (#5332)...
r4113
context "with multiple projects" do
should "return false if array is empty" do
assert ! @admin.allowed_to?(:view_project, [])
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Added ability to specify multiple projects in User#allowed_to? (#5332)...
r4113 should "return true only if user has permission on all these projects" do
assert @admin.allowed_to?(:view_project, Project.all)
assert ! @dlopper.allowed_to?(:view_project, Project.all) #cannot see Project(2)
assert @jsmith.allowed_to?(:edit_issues, @jsmith.projects) #Manager or Developer everywhere
assert ! @jsmith.allowed_to?(:delete_issue_watchers, @jsmith.projects) #Dev cannot delete_issue_watchers
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Fixed: User#allowed_to? returning true in any case if array of projects had only one item (#5332)...
r4119 should "behave correctly with arrays of 1 project" do
assert ! User.anonymous.allowed_to?(:delete_issues, [Project.first])
end
Jean-Baptiste Barth
Added ability to specify multiple projects in User#allowed_to? (#5332)...
r4113 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Baptiste Barth
Added missing tests for User#allowed_to? #6291...
r3944 context "with options[:global]" do
should "authorize if user has at least one role that has this permission" do
@dlopper2 = User.find(5) #only Developper on a project, not Manager anywhere
@anonymous = User.find(6)
assert @jsmith.allowed_to?(:delete_issue_watchers, nil, :global => true)
assert ! @dlopper2.allowed_to?(:delete_issue_watchers, nil, :global => true)
assert @dlopper2.allowed_to?(:add_issues, nil, :global => true)
assert ! @anonymous.allowed_to?(:add_issues, nil, :global => true)
assert @anonymous.allowed_to?(:view_issues, nil, :global => true)
end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 context "User#notify_about?" do
context "Issues" do
setup do
@project = Project.find(1)
@author = User.generate_with_protected!
@assignee = User.generate_with_protected!
@issue = Issue.generate_for_project!(@project, :assigned_to => @assignee, :author => @author)
end
should "be true for a user with :all" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @author.update_attribute(:mail_notification, 'all')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert @author.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be false for a user with :none" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @author.update_attribute(:mail_notification, 'none')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert ! @author.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be false for a user with :only_my_events and isn't an author, creator, or assignee" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @user = User.generate_with_protected!(:mail_notification => 'only_my_events')
Jean-Philippe Lang
Fixed: no email sent with 'Notifiy for any event on the selected projects only' (#7421)....
r4641 Member.create!(:user => @user, :project => @project, :role_ids => [1])
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert ! @user.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be true for a user with :only_my_events and is the author" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @author.update_attribute(:mail_notification, 'only_my_events')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert @author.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be true for a user with :only_my_events and is the assignee" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @assignee.update_attribute(:mail_notification, 'only_my_events')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert @assignee.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be true for a user with :only_assigned and is the assignee" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @assignee.update_attribute(:mail_notification, 'only_assigned')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert @assignee.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be false for a user with :only_assigned and is not the assignee" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @author.update_attribute(:mail_notification, 'only_assigned')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert ! @author.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be true for a user with :only_owner and is the author" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @author.update_attribute(:mail_notification, 'only_owner')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert @author.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 should "be false for a user with :only_owner and is not the author" do
Jean-Philippe Lang
Validates user's mail_notification and turn options into strings (the attribute type)....
r4380 @assignee.update_attribute(:mail_notification, 'only_owner')
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 assert ! @assignee.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Fixed: no email sent with 'Notifiy for any event on the selected projects only' (#7421)....
r4641 should "be true for a user with :selected and is the author" do
@author.update_attribute(:mail_notification, 'selected')
assert @author.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Fixed: no email sent with 'Notifiy for any event on the selected projects only' (#7421)....
r4641 should "be true for a user with :selected and is the assignee" do
@assignee.update_attribute(:mail_notification, 'selected')
assert @assignee.notify_about?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Fixed: no email sent with 'Notifiy for any event on the selected projects only' (#7421)....
r4641 should "be false for a user with :selected and is not the author or assignee" do
@user = User.generate_with_protected!(:mail_notification => 'selected')
Member.create!(:user => @user, :project => @project, :role_ids => [1])
assert ! @user.notify_about?(@issue)
end
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 end
context "other events" do
should 'be added and tested'
end
end
Jean-Philippe Lang
Adds random salt to user passwords (#7410)....
r4816
def test_salt_unsalted_passwords
# Restore a user with an unsalted password
user = User.find(1)
user.salt = nil
user.hashed_password = User.hash_password("unsalted")
user.save!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds random salt to user passwords (#7410)....
r4816 User.salt_unsalted_passwords!
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds random salt to user passwords (#7410)....
r4816 user.reload
# Salt added
assert !user.salt.blank?
# Password still valid
assert user.check_password?("unsalted")
assert_equal user, User.try_to_login(user.login, "unsalted")
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 if Object.const_defined?(:OpenID)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 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
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_setting_blank_identity_url
u = User.new( :identity_url => 'example.com' )
u.identity_url = ''
assert u.identity_url.blank?
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_setting_invalid_identity_url
u = User.new( :identity_url => 'this is not an openid url' )
assert u.identity_url.blank?
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/user_test.rb....
r6595
Jean-Philippe Lang
Adds missing native eol properties....
r2781 else
puts "Skipping openid tests."
end
end