##// END OF EJS Templates
Fixed that magic links to existing attachments are not converted when previewing issue notes....
Fixed that magic links to existing attachments are not converted when previewing issue notes. git-svn-id: http://svn.redmine.org/redmine/trunk@12476 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r10939:e396a0eebe07
r12201:58a63c49c49b
Show More
issues_controller_transaction_test.rb
263 lines | 8.9 KiB | text/x-ruby | RubyLexer
/ test / functional / issues_controller_transaction_test.rb
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 # Redmine - project management software
Jean-Philippe Lang
Copyright for 2013 (#12788)....
r10939 # Copyright (C) 2006-2013 Jean-Philippe Lang
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 #
# 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/functional/issues_controller_transaction_test.rb....
r6799 #
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 # 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/functional/issues_controller_transaction_test.rb....
r6799 #
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 # 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
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 require 'issues_controller'
class IssuesControllerTransactionTest < ActionController::TestCase
Jean-Philippe Lang
Functional tests cleanup....
r10709 tests IssuesController
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 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
Toshi MARUYAMA
remove trailing white-spaces from test/functional/issues_controller_transaction_test.rb....
r6799
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 def setup
User.current = nil
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/issues_controller_transaction_test.rb....
r6799
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 def test_update_stale_issue_should_not_update_the_issue
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 issue = Issue.find(2)
@request.session[:user_id] = 2
assert_no_difference 'Journal.count' do
assert_no_difference 'TimeEntry.count' do
Jean-Philippe Lang
Better handling of attachments when issue validation fails (#10253)....
r8771 put :update,
:id => issue.id,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => 'My notes',
Jean-Philippe Lang
Better handling of attachments when issue validation fails (#10253)....
r8771 :lock_version => (issue.lock_version - 1)
},
:time_entry => { :hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first.id }
end
end
assert_response :success
assert_template 'edit'
Jean-Philippe Lang
Fixed: escaped link in conflict resolution form (#11341)....
r9742
assert_select 'div.conflict'
assert_select 'input[name=?][value=?]', 'conflict_resolution', 'overwrite'
assert_select 'input[name=?][value=?]', 'conflict_resolution', 'add_notes'
assert_select 'label' do
assert_select 'input[name=?][value=?]', 'conflict_resolution', 'cancel'
assert_select 'a[href=/issues/2]'
end
Jean-Philippe Lang
Better handling of attachments when issue validation fails (#10253)....
r8771 end
def test_update_stale_issue_should_save_attachments
set_tmp_attachments_directory
issue = Issue.find(2)
@request.session[:user_id] = 2
assert_no_difference 'Journal.count' do
assert_no_difference 'TimeEntry.count' do
assert_difference 'Attachment.count' do
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 put :update,
:id => issue.id,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => 'My notes',
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 :lock_version => (issue.lock_version - 1)
},
:attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}},
Jean-Philippe Lang
Fixes some parameters in functional tests....
r3587 :time_entry => { :hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first.id }
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/issues_controller_transaction_test.rb....
r6799
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 assert_response :success
assert_template 'edit'
Jean-Philippe Lang
Better handling of attachments when issue validation fails (#10253)....
r8771 attachment = Attachment.first(:order => 'id DESC')
assert_tag 'input', :attributes => {:name => 'attachments[p0][token]', :value => attachment.token}
Jean-Philippe Lang
Merged ajax_upload branch (#3957)....
r10748 assert_tag 'input', :attributes => {:name => 'attachments[p0][filename]', :value => 'testfile.txt'}
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 end
def test_update_stale_issue_without_notes_should_not_show_add_notes_option
issue = Issue.find(2)
@request.session[:user_id] = 2
put :update, :id => issue.id,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => '',
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 :lock_version => (issue.lock_version - 1)
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 }
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654
assert_tag 'div', :attributes => {:class => 'conflict'}
assert_tag 'input', :attributes => {:name => 'conflict_resolution', :value => 'overwrite'}
assert_no_tag 'input', :attributes => {:name => 'conflict_resolution', :value => 'add_notes'}
assert_tag 'input', :attributes => {:name => 'conflict_resolution', :value => 'cancel'}
end
def test_update_stale_issue_should_show_conflicting_journals
@request.session[:user_id] = 2
put :update, :id => 1,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => '',
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 :lock_version => 2
},
:last_journal_id => 1
assert_not_nil assigns(:conflict_journals)
assert_equal 1, assigns(:conflict_journals).size
assert_equal 2, assigns(:conflict_journals).first.id
assert_tag 'div', :attributes => {:class => 'conflict'},
:descendant => {:content => /Some notes with Redmine links/}
end
def test_update_stale_issue_without_previous_journal_should_show_all_journals
@request.session[:user_id] = 2
put :update, :id => 1,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => '',
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 :lock_version => 2
},
:last_journal_id => ''
assert_not_nil assigns(:conflict_journals)
assert_equal 2, assigns(:conflict_journals).size
assert_tag 'div', :attributes => {:class => 'conflict'},
:descendant => {:content => /Some notes with Redmine links/}
assert_tag 'div', :attributes => {:class => 'conflict'},
:descendant => {:content => /Journal notes/}
end
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 def test_update_stale_issue_should_show_private_journals_with_permission_only
journal = Journal.create!(:journalized => Issue.find(1), :notes => 'Privates notes', :private_notes => true, :user_id => 1)
@request.session[:user_id] = 2
put :update, :id => 1, :issue => {:fixed_version_id => 4, :lock_version => 2}, :last_journal_id => ''
assert_include journal, assigns(:conflict_journals)
Role.find(1).remove_permission! :view_private_notes
put :update, :id => 1, :issue => {:fixed_version_id => 4, :lock_version => 2}, :last_journal_id => ''
assert_not_include journal, assigns(:conflict_journals)
end
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 def test_update_stale_issue_with_overwrite_conflict_resolution_should_update
@request.session[:user_id] = 2
assert_difference 'Journal.count' do
put :update, :id => 1,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => 'overwrite_conflict_resolution',
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 :lock_version => 2
},
:conflict_resolution => 'overwrite'
end
assert_response 302
issue = Issue.find(1)
assert_equal 4, issue.fixed_version_id
journal = Journal.first(:order => 'id DESC')
assert_equal 'overwrite_conflict_resolution', journal.notes
assert journal.details.any?
end
def test_update_stale_issue_with_add_notes_conflict_resolution_should_update
@request.session[:user_id] = 2
assert_difference 'Journal.count' do
put :update, :id => 1,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => 'add_notes_conflict_resolution',
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 :lock_version => 2
},
:conflict_resolution => 'add_notes'
end
assert_response 302
issue = Issue.find(1)
assert_nil issue.fixed_version_id
journal = Journal.first(:order => 'id DESC')
assert_equal 'add_notes_conflict_resolution', journal.notes
assert journal.details.empty?
end
def test_update_stale_issue_with_cancel_conflict_resolution_should_redirect_without_updating
@request.session[:user_id] = 2
assert_no_difference 'Journal.count' do
put :update, :id => 1,
:issue => {
:fixed_version_id => 4,
Jean-Philippe Lang
Private issue notes (#1554)....
r10336 :notes => 'add_notes_conflict_resolution',
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 :lock_version => 2
},
:conflict_resolution => 'cancel'
end
assert_redirected_to '/issues/1'
issue = Issue.find(1)
assert_nil issue.fixed_version_id
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 end
Jean-Philippe Lang
Moves test to non-transactional fixtures tests (failure with postgresql)....
r7958
Jean-Philippe Lang
Test moved to tests with transactional fixtures disabled....
r10415 def test_put_update_with_spent_time_and_failure_should_not_add_spent_time
@request.session[:user_id] = 2
assert_no_difference('TimeEntry.count') do
put :update,
:id => 1,
:issue => { :subject => '' },
:time_entry => { :hours => '2.5', :comments => 'should not be added', :activity_id => TimeEntryActivity.first.id }
assert_response :success
end
assert_select 'input[name=?][value=?]', 'time_entry[hours]', '2.5'
assert_select 'input[name=?][value=?]', 'time_entry[comments]', 'should not be added'
assert_select 'select[name=?]', 'time_entry[activity_id]' do
assert_select 'option[value=?][selected=selected]', TimeEntryActivity.first.id
end
end
Jean-Philippe Lang
Moves test to non-transactional fixtures tests (failure with postgresql)....
r7958 def test_index_should_rescue_invalid_sql_query
Jean-Philippe Lang
Adds STI to Query model. Issue queries are now IssueQuery instances....
r10737 IssueQuery.any_instance.stubs(:statement).returns("INVALID STATEMENT")
Jean-Philippe Lang
Moves test to non-transactional fixtures tests (failure with postgresql)....
r7958
get :index
assert_response 500
assert_tag 'p', :content => /An error occurred/
assert_nil session[:query]
assert_nil session[:issues_index_sort]
end
Jean-Philippe Lang
Fixes a test failure with SQLite3 due to transaction fixtures (#5290)....
r3555 end