Tests should not change settings.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9949 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-07-08 12:23:47 +00:00
parent 133ca59edb
commit 7acd04fb87
15 changed files with 94 additions and 61 deletions

View File

@ -95,16 +95,16 @@ LOREM
def test_create_with_one_attachment def test_create_with_one_attachment
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
Setting.notified_events << 'document_added'
@request.session[:user_id] = 2 @request.session[:user_id] = 2
set_tmp_attachments_directory set_tmp_attachments_directory
post :create, :project_id => 'ecookbook', with_settings :notified_events => %w(document_added) do
post :create, :project_id => 'ecookbook',
:document => { :title => 'DocumentsControllerTest#test_post_new', :document => { :title => 'DocumentsControllerTest#test_post_new',
:description => 'This is a new document', :description => 'This is a new document',
:category_id => 2}, :category_id => 2},
:attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
end
assert_redirected_to '/projects/ecookbook/documents' assert_redirected_to '/projects/ecookbook/documents'
document = Document.find_by_title('DocumentsControllerTest#test_post_new') document = Document.find_by_title('DocumentsControllerTest#test_post_new')

View File

@ -58,13 +58,14 @@ class FilesControllerTest < ActionController::TestCase
def test_create_file def test_create_file
set_tmp_attachments_directory set_tmp_attachments_directory
@request.session[:user_id] = 2 @request.session[:user_id] = 2
Setting.notified_events = ['file_added']
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
assert_difference 'Attachment.count' do with_settings :notified_events => %w(file_added) do
post :create, :project_id => 1, :version_id => '', assert_difference 'Attachment.count' do
:attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} post :create, :project_id => 1, :version_id => '',
assert_response :redirect :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
assert_response :redirect
end
end end
assert_redirected_to '/projects/ecookbook/files' assert_redirected_to '/projects/ecookbook/files'
a = Attachment.find(:first, :order => 'created_on DESC') a = Attachment.find(:first, :order => 'created_on DESC')
@ -80,7 +81,6 @@ class FilesControllerTest < ActionController::TestCase
def test_create_version_file def test_create_version_file
set_tmp_attachments_directory set_tmp_attachments_directory
@request.session[:user_id] = 2 @request.session[:user_id] = 2
Setting.notified_events = ['file_added']
assert_difference 'Attachment.count' do assert_difference 'Attachment.count' do
post :create, :project_id => 1, :version_id => '2', post :create, :project_id => 1, :version_id => '2',

View File

@ -91,11 +91,12 @@ class MessagesControllerTest < ActionController::TestCase
def test_post_new def test_post_new
@request.session[:user_id] = 2 @request.session[:user_id] = 2
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
Setting.notified_events = ['message_posted']
post :new, :board_id => 1, with_settings :notified_events => %w(message_posted) do
post :new, :board_id => 1,
:message => { :subject => 'Test created message', :message => { :subject => 'Test created message',
:content => 'Message body'} :content => 'Message body'}
end
message = Message.find_by_subject('Test created message') message = Message.find_by_subject('Test created message')
assert_not_nil message assert_not_nil message
assert_redirected_to "/boards/1/topics/#{message.to_param}" assert_redirected_to "/boards/1/topics/#{message.to_param}"

View File

@ -82,12 +82,13 @@ class NewsControllerTest < ActionController::TestCase
def test_post_create def test_post_create
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
Setting.notified_events << 'news_added'
@request.session[:user_id] = 2 @request.session[:user_id] = 2
post :create, :project_id => 1, :news => { :title => 'NewsControllerTest',
with_settings :notified_events => %w(news_added) do
post :create, :project_id => 1, :news => { :title => 'NewsControllerTest',
:description => 'This is the description', :description => 'This is the description',
:summary => '' } :summary => '' }
end
assert_redirected_to '/projects/ecookbook/news' assert_redirected_to '/projects/ecookbook/news'
news = News.find_by_title('NewsControllerTest') news = News.find_by_title('NewsControllerTest')

View File

@ -292,21 +292,22 @@ class RepositoriesGitControllerTest < ActionController::TestCase
@repository.fetch_changesets @repository.fetch_changesets
@project.reload @project.reload
assert_equal NUM_REV, @repository.changesets.count assert_equal NUM_REV, @repository.changesets.count
Setting.diff_max_lines_displayed = 5
# Truncated diff of changeset 2f9c0091 with_settings :diff_max_lines_displayed => 5 do
with_cache do # Truncated diff of changeset 2f9c0091
get :diff, :id => PRJ_ID, :type => 'inline', with_cache do
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7' get :diff, :id => PRJ_ID, :type => 'inline',
assert_response :success :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert @response.body.include?("... This diff was truncated") assert_response :success
assert @response.body.include?("... This diff was truncated")
Setting.default_language = 'fr' Setting.default_language = 'fr'
get :diff, :id => PRJ_ID, :type => 'inline', get :diff, :id => PRJ_ID, :type => 'inline',
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7' :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert_response :success assert_response :success
assert ! @response.body.include?("... This diff was truncated") assert ! @response.body.include?("... This diff was truncated")
assert @response.body.include?("... Ce diff") assert @response.body.include?("... Ce diff")
end
end end
end end

View File

@ -77,6 +77,7 @@ class SettingsControllerTest < ActionController::TestCase
assert !Setting.bcc_recipients? assert !Setting.bcc_recipients?
assert_equal %w(issue_added issue_updated news_added), Setting.notified_events assert_equal %w(issue_added issue_updated news_added), Setting.notified_events
assert_equal 'Test footer', Setting.emails_footer assert_equal 'Test footer', Setting.emails_footer
Setting.clear_cache
end end
def test_get_plugin_settings def test_get_plugin_settings

View File

@ -33,6 +33,10 @@ class SysControllerTest < ActionController::TestCase
Setting.enabled_scm = %w(Subversion Git) Setting.enabled_scm = %w(Subversion Git)
end end
def teardown
Setting.clear_cache
end
def test_projects_with_repository_enabled def test_projects_with_repository_enabled
get :projects get :projects
assert_response :success assert_response :success

View File

@ -33,11 +33,12 @@ class CommentTest < ActiveSupport::TestCase
end end
def test_create_should_send_notification def test_create_should_send_notification
Setting.notified_events << 'news_comment_added'
Watcher.create!(:watchable => @news, :user => @jsmith) Watcher.create!(:watchable => @news, :user => @jsmith)
assert_difference 'ActionMailer::Base.deliveries.size' do with_settings :notified_events => %w(news_comment_added) do
Comment.create!(:commented => @news, :author => @jsmith, :comments => "my comment") assert_difference 'ActionMailer::Base.deliveries.size' do
Comment.create!(:commented => @news, :author => @jsmith, :comments => "my comment")
end
end end
end end

View File

@ -27,10 +27,11 @@ class DocumentTest < ActiveSupport::TestCase
def test_create_should_send_email_notification def test_create_should_send_email_notification
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
Setting.notified_events << 'document_added'
doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation'))
assert doc.save with_settings :notified_events => %w(document_added) do
doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation'))
assert doc.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end

View File

@ -27,102 +27,111 @@ class JournalObserverTest < ActiveSupport::TestCase
# context: issue_updated notified_events # context: issue_updated notified_events
def test_create_should_send_email_notification_with_issue_updated def test_create_should_send_email_notification_with_issue_updated
Setting.notified_events = ['issue_updated']
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
journal = issue.init_journal(user, issue) journal = issue.init_journal(user, issue)
assert journal.save with_settings :notified_events => %w(issue_updated) do
assert journal.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end
def test_create_should_not_send_email_notification_with_notify_set_to_false def test_create_should_not_send_email_notification_with_notify_set_to_false
Setting.notified_events = ['issue_updated']
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
journal = issue.init_journal(user, issue) journal = issue.init_journal(user, issue)
journal.notify = false journal.notify = false
assert journal.save with_settings :notified_events => %w(issue_updated) do
assert journal.save
end
assert_equal 0, ActionMailer::Base.deliveries.size assert_equal 0, ActionMailer::Base.deliveries.size
end end
def test_create_should_not_send_email_notification_without_issue_updated def test_create_should_not_send_email_notification_without_issue_updated
Setting.notified_events = []
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
journal = issue.init_journal(user, issue) journal = issue.init_journal(user, issue)
assert journal.save with_settings :notified_events => [] do
assert journal.save
end
assert_equal 0, ActionMailer::Base.deliveries.size assert_equal 0, ActionMailer::Base.deliveries.size
end end
# context: issue_note_added notified_events # context: issue_note_added notified_events
def test_create_should_send_email_notification_with_issue_note_added def test_create_should_send_email_notification_with_issue_note_added
Setting.notified_events = ['issue_note_added']
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
journal = issue.init_journal(user, issue) journal = issue.init_journal(user, issue)
journal.notes = 'This update has a note' journal.notes = 'This update has a note'
assert journal.save with_settings :notified_events => %w(issue_note_added) do
assert journal.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end
def test_create_should_not_send_email_notification_without_issue_note_added def test_create_should_not_send_email_notification_without_issue_note_added
Setting.notified_events = []
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
journal = issue.init_journal(user, issue) journal = issue.init_journal(user, issue)
journal.notes = 'This update has a note' journal.notes = 'This update has a note'
assert journal.save with_settings :notified_events => [] do
assert journal.save
end
assert_equal 0, ActionMailer::Base.deliveries.size assert_equal 0, ActionMailer::Base.deliveries.size
end end
# context: issue_status_updated notified_events # context: issue_status_updated notified_events
def test_create_should_send_email_notification_with_issue_status_updated def test_create_should_send_email_notification_with_issue_status_updated
Setting.notified_events = ['issue_status_updated']
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
issue.init_journal(user, issue) issue.init_journal(user, issue)
issue.status = IssueStatus.last issue.status = IssueStatus.last
assert issue.save with_settings :notified_events => %w(issue_status_updated) do
assert issue.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end
def test_create_should_not_send_email_notification_without_issue_status_updated def test_create_should_not_send_email_notification_without_issue_status_updated
Setting.notified_events = []
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
issue.init_journal(user, issue) issue.init_journal(user, issue)
issue.status = IssueStatus.last issue.status = IssueStatus.last
assert issue.save with_settings :notified_events => [] do
assert issue.save
end
assert_equal 0, ActionMailer::Base.deliveries.size assert_equal 0, ActionMailer::Base.deliveries.size
end end
# context: issue_priority_updated notified_events # context: issue_priority_updated notified_events
def test_create_should_send_email_notification_with_issue_priority_updated def test_create_should_send_email_notification_with_issue_priority_updated
Setting.notified_events = ['issue_priority_updated']
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
issue.init_journal(user, issue) issue.init_journal(user, issue)
issue.priority = IssuePriority.last issue.priority = IssuePriority.last
assert issue.save with_settings :notified_events => %w(issue_priority_updated) do
assert issue.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end
def test_create_should_not_send_email_notification_without_issue_priority_updated def test_create_should_not_send_email_notification_without_issue_priority_updated
Setting.notified_events = []
issue = Issue.find(:first) issue = Issue.find(:first)
user = User.find(:first) user = User.find(:first)
issue.init_journal(user, issue) issue.init_journal(user, issue)
issue.priority = IssuePriority.last issue.priority = IssuePriority.last
assert issue.save with_settings :notified_events => [] do
assert issue.save
end
assert_equal 0, ActionMailer::Base.deliveries.size assert_equal 0, ActionMailer::Base.deliveries.size
end end
end end

View File

@ -35,6 +35,10 @@ class MailHandlerTest < ActiveSupport::TestCase
Setting.notified_events = Redmine::Notifiable.all.collect(&:name) Setting.notified_events = Redmine::Notifiable.all.collect(&:name)
end end
def teardown
Setting.clear_cache
end
def test_add_issue def test_add_issue
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
# This email contains: 'Project: onlinestore' # This email contains: 'Project: onlinestore'

View File

@ -29,10 +29,11 @@ class NewsTest < ActiveSupport::TestCase
def test_create_should_send_email_notification def test_create_should_send_email_notification
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
Setting.notified_events << 'news_added'
news = Project.find(1).news.new(valid_news) news = Project.find(1).news.new(valid_news)
assert news.save with_settings :notified_events => %w(news_added) do
assert news.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end

View File

@ -149,7 +149,6 @@ class RepositoryTest < ActiveSupport::TestCase
def test_scan_changesets_for_issue_ids def test_scan_changesets_for_issue_ids
Setting.default_language = 'en' Setting.default_language = 'en'
Setting.notified_events = ['issue_added','issue_updated']
# choosing a status to apply to fix issues # choosing a status to apply to fix issues
Setting.commit_fix_status_id = IssueStatus.find( Setting.commit_fix_status_id = IssueStatus.find(
@ -166,7 +165,9 @@ class RepositoryTest < ActiveSupport::TestCase
assert !fixed_issue.status.is_closed? assert !fixed_issue.status.is_closed?
old_status = fixed_issue.status old_status = fixed_issue.status
Repository.scan_changesets_for_issue_ids with_settings :notified_events => %w(issue_added issue_updated) do
Repository.scan_changesets_for_issue_ids
end
assert_equal [101, 102], Issue.find(3).changeset_ids assert_equal [101, 102], Issue.find(3).changeset_ids
# fixed issues # fixed issues

View File

@ -19,6 +19,10 @@ require File.expand_path('../../test_helper', __FILE__)
class SettingTest < ActiveSupport::TestCase class SettingTest < ActiveSupport::TestCase
def teardown
Setting.clear_cache
end
def test_read_default def test_read_default
assert_equal "Redmine", Setting.app_title assert_equal "Redmine", Setting.app_title
assert Setting.self_registration? assert Setting.self_registration?

View File

@ -44,11 +44,13 @@ class WikiContentTest < ActiveSupport::TestCase
end end
def test_create_should_send_email_notification def test_create_should_send_email_notification
Setting.notified_events = ['wiki_content_added']
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
page = WikiPage.new(:wiki => @wiki, :title => "A new page") page = WikiPage.new(:wiki => @wiki, :title => "A new page")
page.content = WikiContent.new(:text => "Content text", :author => User.find(1), :comments => "My comment") page.content = WikiContent.new(:text => "Content text", :author => User.find(1), :comments => "My comment")
assert page.save
with_settings :notified_events => %w(wiki_content_added) do
assert page.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end
@ -88,11 +90,13 @@ class WikiContentTest < ActiveSupport::TestCase
end end
def test_update_should_send_email_notification def test_update_should_send_email_notification
Setting.notified_events = ['wiki_content_updated']
ActionMailer::Base.deliveries.clear ActionMailer::Base.deliveries.clear
content = @page.content content = @page.content
content.text = "My new content" content.text = "My new content"
assert content.save
with_settings :notified_events => %w(wiki_content_updated) do
assert content.save
end
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
end end