Redmine 4.1.1
This commit is contained in:
parent
33e7b881a5
commit
3d976f1b3b
1593 changed files with 36180 additions and 19489 deletions
|
@ -1,5 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2017 Jean-Philippe Lang
|
||||
# Copyright (C) 2006-2019 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
|
||||
|
@ -25,7 +27,8 @@ class TimeEntryQueryTest < ActiveSupport::TestCase
|
|||
:journals, :journal_details,
|
||||
:issue_categories, :enumerations,
|
||||
:groups_users,
|
||||
:enabled_modules
|
||||
:enabled_modules,
|
||||
:custom_fields, :custom_fields_trackers, :custom_fields_projects
|
||||
|
||||
def setup
|
||||
User.current = nil
|
||||
|
@ -38,7 +41,7 @@ class TimeEntryQueryTest < ActiveSupport::TestCase
|
|||
q.available_filters.each do |name, filter|
|
||||
values = filter.values
|
||||
assert (values.nil? || values.is_a?(Array)),
|
||||
"#values for #{name} filter returned a #{values.class.name}"
|
||||
"#values for #{name} filter returned a #{values.class.name}"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -49,7 +52,7 @@ class TimeEntryQueryTest < ActiveSupport::TestCase
|
|||
q.available_filters.each do |name, filter|
|
||||
values = filter.values
|
||||
assert (values.nil? || values.is_a?(Array)),
|
||||
"#values for #{name} filter returned a #{values.class.name}"
|
||||
"#values for #{name} filter returned a #{values.class.name}"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -106,4 +109,39 @@ class TimeEntryQueryTest < ActiveSupport::TestCase
|
|||
assert_include "issue.cf_#{field_on_project.id}", query.available_columns.map(&:name).map(&:to_s)
|
||||
assert_not_include "issue.cf_#{field_not_on_project.id}", query.available_columns.map(&:name).map(&:to_s)
|
||||
end
|
||||
|
||||
def test_issue_category_filter_should_not_be_available_in_global_queries
|
||||
query = TimeEntryQuery.new(:project => nil, :name => '_')
|
||||
assert !query.available_filters.has_key?('issue.category_id')
|
||||
end
|
||||
|
||||
def test_project_status_filter_should_be_available_in_global_queries
|
||||
query = TimeEntryQuery.new(:project => nil, :name => '_')
|
||||
assert query.available_filters.has_key?('project.status')
|
||||
end
|
||||
|
||||
def test_project_status_filter_should_be_available_when_project_has_subprojects
|
||||
query = TimeEntryQuery.new(:project => Project.find(1), :name => '_')
|
||||
assert query.available_filters.has_key?('project.status')
|
||||
end
|
||||
|
||||
def test_project_status_filter_should_not_be_available_when_project_is_leaf
|
||||
query = TimeEntryQuery.new(:project => Project.find(2), :name => '_')
|
||||
assert !query.available_filters.has_key?('project.status')
|
||||
end
|
||||
|
||||
def test_results_scope_should_be_in_the_same_order_when_paginating
|
||||
4.times { TimeEntry.generate! }
|
||||
q = TimeEntryQuery.new
|
||||
q.sort_criteria = {'0' => ['user', 'asc']}
|
||||
time_entry_ids = q.results_scope.pluck(:id)
|
||||
paginated_time_entry_ids = []
|
||||
# Test with a maximum of 2 records per page.
|
||||
((q.results_scope.count / 2) + 1).times do |i|
|
||||
paginated_time_entry_ids += q.results_scope.offset((i * 2)).limit(2).pluck(:id)
|
||||
end
|
||||
|
||||
# Non-paginated time entry ids and paginated time entry ids should be in the same order.
|
||||
assert_equal time_entry_ids, paginated_time_entry_ids
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue