]> source.dussan.org Git - redmine.git/commitdiff
Tests should not change settings.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 8 Jul 2012 12:23:47 +0000 (12:23 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 8 Jul 2012 12:23:47 +0000 (12:23 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9949 e93f8b46-1217-0410-a6f0-8f06a7374b81

15 files changed:
test/functional/documents_controller_test.rb
test/functional/files_controller_test.rb
test/functional/messages_controller_test.rb
test/functional/news_controller_test.rb
test/functional/repositories_git_controller_test.rb
test/functional/settings_controller_test.rb
test/functional/sys_controller_test.rb
test/unit/comment_test.rb
test/unit/document_test.rb
test/unit/journal_observer_test.rb
test/unit/mail_handler_test.rb
test/unit/news_test.rb
test/unit/repository_test.rb
test/unit/setting_test.rb
test/unit/wiki_content_test.rb

index 5b76d840720ef7921d09427b23d494ee9fc23bdd..b9ff12ad6795edbf423bbbfee31750f0d6816c99 100644 (file)
@@ -95,16 +95,16 @@ LOREM
 
   def test_create_with_one_attachment
     ActionMailer::Base.deliveries.clear
-    Setting.notified_events << 'document_added'
     @request.session[:user_id] = 2
     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',
                               :description => 'This is a new document',
                               :category_id => 2},
                :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
-
+    end
     assert_redirected_to '/projects/ecookbook/documents'
 
     document = Document.find_by_title('DocumentsControllerTest#test_post_new')
index d055579907b10b3a260159617830aac9a0d2839f..5e3c9d68b9656c73e198ece5b2b1d93caf0974e7 100644 (file)
@@ -58,13 +58,14 @@ class FilesControllerTest < ActionController::TestCase
   def test_create_file
     set_tmp_attachments_directory
     @request.session[:user_id] = 2
-    Setting.notified_events = ['file_added']
     ActionMailer::Base.deliveries.clear
 
-    assert_difference 'Attachment.count' do
-      post :create, :project_id => 1, :version_id => '',
-           :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
-      assert_response :redirect
+    with_settings :notified_events => %w(file_added) do
+      assert_difference 'Attachment.count' do
+        post :create, :project_id => 1, :version_id => '',
+             :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
+        assert_response :redirect
+      end
     end
     assert_redirected_to '/projects/ecookbook/files'
     a = Attachment.find(:first, :order => 'created_on DESC')
@@ -80,7 +81,6 @@ class FilesControllerTest < ActionController::TestCase
   def test_create_version_file
     set_tmp_attachments_directory
     @request.session[:user_id] = 2
-    Setting.notified_events = ['file_added']
 
     assert_difference 'Attachment.count' do
       post :create, :project_id => 1, :version_id => '2',
index 5f8b22af4f436250761a4502bb759ffb5b3c22b6..294f870356d6713eaf1e5167033399bfe2df2285 100644 (file)
@@ -91,11 +91,12 @@ class MessagesControllerTest < ActionController::TestCase
   def test_post_new
     @request.session[:user_id] = 2
     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',
                              :content => 'Message body'}
+    end
     message = Message.find_by_subject('Test created message')
     assert_not_nil message
     assert_redirected_to "/boards/1/topics/#{message.to_param}"
index 44c00d73aa920da39c2d8921d6966f5da100b0c9..dcc6410ede649767647e1ecfa3f54b0094f1520c 100644 (file)
@@ -82,12 +82,13 @@ class NewsControllerTest < ActionController::TestCase
 
   def test_post_create
     ActionMailer::Base.deliveries.clear
-    Setting.notified_events << 'news_added'
-
     @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',
                                             :summary => '' }
+    end
     assert_redirected_to '/projects/ecookbook/news'
 
     news = News.find_by_title('NewsControllerTest')
index 52f3c6509a0ee18bb6a2bbaf918ac7e80d599b5b..44e74ea7db9b34aec645b006240f53a1d0e03295 100644 (file)
@@ -292,21 +292,22 @@ class RepositoriesGitControllerTest < ActionController::TestCase
       @repository.fetch_changesets
       @project.reload
       assert_equal NUM_REV, @repository.changesets.count
-      Setting.diff_max_lines_displayed = 5
 
-      # Truncated diff of changeset 2f9c0091
-      with_cache do
-        get :diff, :id   => PRJ_ID, :type => 'inline',
-            :rev  => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
-        assert_response :success
-        assert @response.body.include?("... This diff was truncated")
-
-        Setting.default_language = 'fr'
-        get :diff, :id   => PRJ_ID, :type => 'inline',
-            :rev  => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
-        assert_response :success
-        assert ! @response.body.include?("... This diff was truncated")
-        assert @response.body.include?("... Ce diff")
+      with_settings :diff_max_lines_displayed => 5 do
+        # Truncated diff of changeset 2f9c0091
+        with_cache do
+          get :diff, :id   => PRJ_ID, :type => 'inline',
+              :rev  => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
+          assert_response :success
+          assert @response.body.include?("... This diff was truncated")
+  
+          Setting.default_language = 'fr'
+          get :diff, :id   => PRJ_ID, :type => 'inline',
+              :rev  => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
+          assert_response :success
+          assert ! @response.body.include?("... This diff was truncated")
+          assert @response.body.include?("... Ce diff")
+        end
       end
     end
 
index 0457e70f2224b3c6d536d8c1a3c8cde679296325..deddabea5ea9748729de12c0f2e66167361ffcbe 100644 (file)
@@ -77,6 +77,7 @@ class SettingsControllerTest < ActionController::TestCase
     assert !Setting.bcc_recipients?
     assert_equal %w(issue_added issue_updated news_added), Setting.notified_events
     assert_equal 'Test footer', Setting.emails_footer
+    Setting.clear_cache
   end
 
   def test_get_plugin_settings
index 439e4c0f58db721182bf7aba13bf7dd792ed1e42..d046c231a33ba1100b3b685bf456d6619251df36 100644 (file)
@@ -33,6 +33,10 @@ class SysControllerTest < ActionController::TestCase
     Setting.enabled_scm = %w(Subversion Git)
   end
 
+  def teardown
+    Setting.clear_cache
+  end
+
   def test_projects_with_repository_enabled
     get :projects
     assert_response :success
index 004bd8e0931b50e469abd9c701ff9598c837dcfb..f88528d3219dc166d3e430c3629884a6d7edfb4c 100644 (file)
@@ -33,11 +33,12 @@ class CommentTest < ActiveSupport::TestCase
   end
 
   def test_create_should_send_notification
-    Setting.notified_events << 'news_comment_added'
     Watcher.create!(:watchable => @news, :user => @jsmith)
 
-    assert_difference 'ActionMailer::Base.deliveries.size' do
-      Comment.create!(:commented => @news, :author => @jsmith, :comments => "my comment")
+    with_settings :notified_events => %w(news_comment_added) do
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        Comment.create!(:commented => @news, :author => @jsmith, :comments => "my comment")
+      end
     end
   end
 
index ba2d73de7af1fea54ba13b391d809cc8617d2352..afcb53d24435c10e7b79273976b1254d6e56f54c 100644 (file)
@@ -27,10 +27,11 @@ class DocumentTest < ActiveSupport::TestCase
 
   def test_create_should_send_email_notification
     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
   end
 
index 06a5499ed4efccb4162554e4ffdcf9898540a599..2e7bad436f3f36172784f6f242fbc05d0b290186 100644 (file)
@@ -27,102 +27,111 @@ class JournalObserverTest < ActiveSupport::TestCase
 
   # context: issue_updated notified_events
   def test_create_should_send_email_notification_with_issue_updated
-    Setting.notified_events = ['issue_updated']
     issue = Issue.find(:first)
     user = User.find(:first)
     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
   end
 
   def test_create_should_not_send_email_notification_with_notify_set_to_false
-    Setting.notified_events = ['issue_updated']
     issue = Issue.find(:first)
     user = User.find(:first)
     journal = issue.init_journal(user, issue)
     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
   end
 
   def test_create_should_not_send_email_notification_without_issue_updated
-    Setting.notified_events = []
     issue = Issue.find(:first)
     user = User.find(:first)
     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
   end
 
   # context: issue_note_added notified_events
   def test_create_should_send_email_notification_with_issue_note_added
-    Setting.notified_events = ['issue_note_added']
     issue = Issue.find(:first)
     user = User.find(:first)
     journal = issue.init_journal(user, issue)
     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
   end
 
   def test_create_should_not_send_email_notification_without_issue_note_added
-    Setting.notified_events = []
     issue = Issue.find(:first)
     user = User.find(:first)
     journal = issue.init_journal(user, issue)
     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
   end
 
   # context: issue_status_updated notified_events
   def test_create_should_send_email_notification_with_issue_status_updated
-    Setting.notified_events = ['issue_status_updated']
     issue = Issue.find(:first)
     user = User.find(:first)
     issue.init_journal(user, issue)
     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
   end
 
   def test_create_should_not_send_email_notification_without_issue_status_updated
-    Setting.notified_events = []
     issue = Issue.find(:first)
     user = User.find(:first)
     issue.init_journal(user, issue)
     issue.status = IssueStatus.last
 
-    assert issue.save
+    with_settings :notified_events => [] do
+      assert issue.save
+    end
     assert_equal 0, ActionMailer::Base.deliveries.size
   end
 
   # context: issue_priority_updated notified_events
   def test_create_should_send_email_notification_with_issue_priority_updated
-    Setting.notified_events = ['issue_priority_updated']
     issue = Issue.find(:first)
     user = User.find(:first)
     issue.init_journal(user, issue)
     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
   end
 
   def test_create_should_not_send_email_notification_without_issue_priority_updated
-    Setting.notified_events = []
     issue = Issue.find(:first)
     user = User.find(:first)
     issue.init_journal(user, issue)
     issue.priority = IssuePriority.last
 
-    assert issue.save
+    with_settings :notified_events => [] do
+      assert issue.save
+    end
     assert_equal 0, ActionMailer::Base.deliveries.size
   end
 end
index 0e94fcc18644ce78e176e0a5211d8b9afceea502..ce21f3ceadca1d7fc02f116c1150953f422bc8ec 100644 (file)
@@ -35,6 +35,10 @@ class MailHandlerTest < ActiveSupport::TestCase
     Setting.notified_events = Redmine::Notifiable.all.collect(&:name)
   end
 
+  def teardown
+    Setting.clear_cache
+  end
+
   def test_add_issue
     ActionMailer::Base.deliveries.clear
     # This email contains: 'Project: onlinestore'
index 71b939d6380fd04868aba10273a9d9e31423a25e..94054e5a73550993b1f400482f864d67219e2152 100644 (file)
@@ -29,10 +29,11 @@ class NewsTest < ActiveSupport::TestCase
 
   def test_create_should_send_email_notification
     ActionMailer::Base.deliveries.clear
-    Setting.notified_events << 'news_added'
     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
   end
 
index bf17b888455c834ffcb30f726627f14266e580fe..f99711623acebf9ac2e7f23b70923f0d7ce9b7bb 100644 (file)
@@ -149,7 +149,6 @@ class RepositoryTest < ActiveSupport::TestCase
 
   def test_scan_changesets_for_issue_ids
     Setting.default_language = 'en'
-    Setting.notified_events = ['issue_added','issue_updated']
 
     # choosing a status to apply to fix issues
     Setting.commit_fix_status_id = IssueStatus.find(
@@ -166,7 +165,9 @@ class RepositoryTest < ActiveSupport::TestCase
     assert !fixed_issue.status.is_closed?
     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
 
     # fixed issues
index 41bc31aef272d2292480a884ae952e93e7e1048f..089cb275428b3600009ef7c2da80a01721d668f1 100644 (file)
@@ -19,6 +19,10 @@ require File.expand_path('../../test_helper', __FILE__)
 
 class SettingTest < ActiveSupport::TestCase
 
+  def teardown
+    Setting.clear_cache
+  end
+
   def test_read_default
     assert_equal "Redmine", Setting.app_title
     assert Setting.self_registration?
index bd8474b554b08578514bfcf0f6ddebef4ba11e3b..4200958078e51f3b8c55498e8e00d8576083c2c6 100644 (file)
@@ -44,11 +44,13 @@ class WikiContentTest < ActiveSupport::TestCase
   end
 
   def test_create_should_send_email_notification
-    Setting.notified_events = ['wiki_content_added']
     ActionMailer::Base.deliveries.clear
     page = WikiPage.new(:wiki => @wiki, :title => "A new page")
     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
   end
@@ -88,11 +90,13 @@ class WikiContentTest < ActiveSupport::TestCase
   end
 
   def test_update_should_send_email_notification
-    Setting.notified_events = ['wiki_content_updated']
     ActionMailer::Base.deliveries.clear
     content = @page.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
   end