Redmine 4.1.7

This commit is contained in:
Manuel Cillero 2023-07-07 08:08:27 +02:00
parent 55458d3479
commit 3ca3c37487
103 changed files with 2426 additions and 431 deletions

View file

@ -456,6 +456,7 @@ class ApplicationHelperTest < Redmine::HelperTest
'user:JSMITH' => link_to_user(User.find_by_id(2)),
'user#2' => link_to_user(User.find_by_id(2)),
'@jsmith' => link_to_user(User.find_by_id(2)),
'@jsmith.' => "#{link_to_user(User.find_by_id(2))}.",
'@JSMITH' => link_to_user(User.find_by_id(2)),
'@abcd@example.com' => link_to_user(User.find_by_id(u_email_id)),
'user:abcd@example.com' => link_to_user(User.find_by_id(u_email_id)),

View file

@ -143,12 +143,20 @@ class IssuesHelperTest < Redmine::HelperTest
end
test 'show_detail should show old and new values with a project attribute' do
User.current = User.find(2)
detail = JournalDetail.new(:property => 'attr', :prop_key => 'project_id',
:old_value => 1, :value => 2)
assert_match 'eCookbook', show_detail(detail, true)
assert_match 'OnlineStore', show_detail(detail, true)
end
test 'show_detail with a project attribute should show project ID if project is not visible' do
detail = JournalDetail.new(:property => 'attr', :prop_key => 'project_id',
:old_value => 1, :value => 2)
assert_match 'eCookbook', show_detail(detail, true)
assert_match '2', show_detail(detail, true)
end
test 'show_detail should show old and new values with a issue status attribute' do
detail = JournalDetail.new(:property => 'attr', :prop_key => 'status_id',
:old_value => 1, :value => 2)
@ -352,4 +360,26 @@ class IssuesHelperTest < Redmine::HelperTest
assert_equal '06/06/2019', issue_due_date_details(issue)
end
end
def test_issue_spent_hours_details_should_link_to_project_time_entries_depending_on_cross_project_setting
%w(descendants).each do |setting|
with_settings :cross_project_subtasks => setting do
TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 3)
TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 4)
assert_match "href=\"/projects/ecookbook/time_entries?issue_id=~1\"", CGI.unescape(issue_spent_hours_details(Issue.find(1)))
end
end
end
def test_issue_spent_hours_details_should_link_to_global_time_entries_depending_on_cross_project_setting
%w(system tree hierarchy).each do |setting|
with_settings :cross_project_subtasks => setting do
TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 3)
TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 4)
assert_match "href=\"/time_entries?issue_id=~1\"", CGI.unescape(issue_spent_hours_details(Issue.find(1)))
end
end
end
end

View file

@ -48,4 +48,30 @@ class JournalsHelperTest < Redmine::HelperTest
assert_kind_of Attachment, thumbnails.first
assert_equal 'image.png', thumbnails.first.filename
end
def test_journal_thumbnail_attachments_should_be_in_the_same_order_as_the_journal_details
skip unless convert_installed?
set_tmp_attachments_directory
issue = Issue.generate!
# Thumbnails should be displayed in the same order as Journal.detail, not in attachment id order.
attachment1 = Attachment.generate!(:file => mock_file_with_options(:original_filename => 'image1.png'), :author => User.find(1))
attachment2 = Attachment.generate!(:file => mock_file_with_options(:original_filename => 'image2.png'), :author => User.find(1))
journal = Journal.create!(:journalized => issue, :user_id => 1)
JournalDetail.create!(
:journal => journal, :property => 'attachment',
:prop_key => attachment2.id.to_s,
:value => 'image2.png'
)
JournalDetail.create!(
:journal => journal, :property => 'attachment',
:prop_key => attachment1.id.to_s,
:value => 'image1.png'
)
journal.reload
thumbnails = journal_thumbnail_attachments(journal)
assert_equal 2, thumbnails.count
assert_equal 2, journal.details.count
assert_equal journal.details.map(&:value), thumbnails.map(&:filename)
end
end