More flexible mail notifications settings at user level. A user has now 3 options:

* notification on any event on all his projects
* notification on any event on selected projects only (if the user belongs to more than 1 project)
* notification only for things that he watches or he is involded in (eg. issues that he watches or he is author or assignee)

git-svn-id: http://redmine.rubyforge.org/svn/trunk@855 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2007-10-20 12:47:05 +00:00
parent eacd050630
commit 90d33c3e51
30 changed files with 254 additions and 93 deletions
+14 -13
View File
@@ -61,29 +61,30 @@ class MyControllerTest < Test::Unit::TestCase
end
def test_change_password
get :account
get :password
assert_response :success
assert_template 'account'
assert_template 'password'
# non matching password confirmation
post :change_password, :password => 'jsmith',
:new_password => 'hello',
:new_password_confirmation => 'hello2'
post :password, :password => 'jsmith',
:new_password => 'hello',
:new_password_confirmation => 'hello2'
assert_response :success
assert_template 'account'
assert_template 'password'
assert_tag :tag => "div", :attributes => { :class => "errorExplanation" }
# wrong password
post :change_password, :password => 'wrongpassword',
:new_password => 'hello',
:new_password_confirmation => 'hello'
assert_redirected_to 'my/account'
post :password, :password => 'wrongpassword',
:new_password => 'hello',
:new_password_confirmation => 'hello'
assert_response :success
assert_template 'password'
assert_equal 'Wrong password', flash[:error]
# good password
post :change_password, :password => 'jsmith',
:new_password => 'hello',
:new_password_confirmation => 'hello'
post :password, :password => 'jsmith',
:new_password => 'hello',
:new_password_confirmation => 'hello'
assert_redirected_to 'my/account'
assert User.try_to_login('jsmith', 'hello')
end
+24
View File
@@ -105,4 +105,28 @@ class UserTest < Test::Unit::TestCase
# 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 = [@jsmith.projects.first.id]
@jsmith.save
@jsmith.reload
assert @jsmith.projects.first.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
end