OSDN Git Service

Fixes a test failure with SQLite3 due to transaction fixtures (#5290).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 12 Apr 2010 17:43:01 +0000 (17:43 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 12 Apr 2010 17:43:01 +0000 (17:43 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3669 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/functional/issues_controller_test.rb
test/functional/issues_controller_transaction_test.rb [new file with mode: 0644]

index 9c7d4f1..3a39887 100644 (file)
@@ -980,32 +980,6 @@ class IssuesControllerTest < ActionController::TestCase
     assert_redirected_to :controller => 'issues', :action => 'show', :id => issue.id
   end
   
-  def test_put_update_stale_issue
-    issue = Issue.find(2)
-    @request.session[:user_id] = 2
-
-    assert_no_difference 'Journal.count' do
-      assert_no_difference 'TimeEntry.count' do
-        assert_no_difference 'Attachment.count' do
-          put :update,
-                :id => issue.id,
-                :issue => {
-                  :fixed_version_id => 4,
-                  :lock_version => (issue.lock_version - 1)
-                },
-                :notes => '',
-                :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}},
-                :time_entry => { :hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first }
-        end
-      end
-    end
-    
-    assert_response :success
-    assert_template 'edit'
-    assert_tag :tag => 'div', :attributes => { :id => 'errorExplanation' },
-                              :content => /Data has been updated by another user/
-  end
-  
   def test_get_bulk_edit
     @request.session[:user_id] = 2
     get :bulk_edit, :ids => [1, 2]
diff --git a/test/functional/issues_controller_transaction_test.rb b/test/functional/issues_controller_transaction_test.rb
new file mode 100644 (file)
index 0000000..bac4661
--- /dev/null
@@ -0,0 +1,83 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../test_helper'
+require 'issues_controller'
+
+# Re-raise errors caught by the controller.
+class IssuesController; def rescue_action(e) raise e end; end
+
+class IssuesControllerTransactionTest < ActionController::TestCase
+  fixtures :projects,
+           :users,
+           :roles,
+           :members,
+           :member_roles,
+           :issues,
+           :issue_statuses,
+           :versions,
+           :trackers,
+           :projects_trackers,
+           :issue_categories,
+           :enabled_modules,
+           :enumerations,
+           :attachments,
+           :workflows,
+           :custom_fields,
+           :custom_values,
+           :custom_fields_projects,
+           :custom_fields_trackers,
+           :time_entries,
+           :journals,
+           :journal_details,
+           :queries
+
+  self.use_transactional_fixtures = false
+  
+  def setup
+    @controller = IssuesController.new
+    @request    = ActionController::TestRequest.new
+    @response   = ActionController::TestResponse.new
+    User.current = nil
+  end
+  
+  def test_put_update_stale_issue
+    issue = Issue.find(2)
+    @request.session[:user_id] = 2
+
+    assert_no_difference 'Journal.count' do
+      assert_no_difference 'TimeEntry.count' do
+        assert_no_difference 'Attachment.count' do
+          put :update,
+                :id => issue.id,
+                :issue => {
+                  :fixed_version_id => 4,
+                  :lock_version => (issue.lock_version - 1)
+                },
+                :notes => '',
+                :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}},
+                :time_entry => { :hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first }
+        end
+      end
+    end
+    
+    assert_response :success
+    assert_template 'edit'
+    assert_tag :tag => 'div', :attributes => { :id => 'errorExplanation' },
+                              :content => /Data has been updated by another user/
+  end
+end