summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2018-10-03 07:16:47 +0000
committerGo MAEDA <maeda@farend.jp>2018-10-03 07:16:47 +0000
commit3952c4d2642e275c1b1b04135596265b04548a13 (patch)
treebcac05dffca72e5db784d91eb55fed9b3edf65be /test
parent82abfa8ac576c9f8c85d9617d66b7d203b6b6b44 (diff)
downloadredmine-3952c4d2642e275c1b1b04135596265b04548a13.tar.gz
redmine-3952c4d2642e275c1b1b04135596265b04548a13.zip
Extend Issue Summary to include subprojects (#2529).
Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@17563 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/functional/reports_controller_test.rb79
-rw-r--r--test/unit/issue_test.rb52
2 files changed, 114 insertions, 17 deletions
diff --git a/test/functional/reports_controller_test.rb b/test/functional/reports_controller_test.rb
index 63a882a8d..0b922f288 100644
--- a/test/functional/reports_controller_test.rb
+++ b/test/functional/reports_controller_test.rb
@@ -34,6 +34,38 @@ class ReportsControllerTest < Redmine::ControllerTest
assert_response :success
end
+ def test_issue_report_with_subprojects_issues
+ Setting.stubs(:display_subprojects_issues?).returns(true)
+ get :issue_report, :params => {
+ :id => 1
+ }
+
+ assert_response :success
+ # Count subprojects issues
+ assert_select 'table.list tbody :nth-child(1):first' do
+ assert_select 'td', :text => 'Bug'
+ assert_select ':nth-child(2)', :text => '5' # open
+ assert_select ':nth-child(3)', :text => '3' # closed
+ assert_select ':nth-child(4)', :text => '8' # total
+ end
+ end
+
+ def test_issue_report_without_subprojects_issues
+ Setting.stubs(:display_subprojects_issues?).returns(false)
+ get :issue_report, :params => {
+ :id => 1
+ }
+
+ assert_response :success
+ # Do not count subprojects issues
+ assert_select 'table.list tbody :nth-child(1):first' do
+ assert_select 'td', :text => 'Bug'
+ assert_select ':nth-child(2)', :text => '3' # open
+ assert_select ':nth-child(3)', :text => '3' # closed
+ assert_select ':nth-child(4)', :text => '6' # total
+ end
+ end
+
def test_get_issue_report_details
%w(tracker version priority category assigned_to author subproject).each do |detail|
get :issue_report_details, :params => {
@@ -45,6 +77,7 @@ class ReportsControllerTest < Redmine::ControllerTest
end
def test_get_issue_report_details_by_tracker_should_show_only_statuses_used_by_the_project
+ Setting.stubs(:display_subprojects_issues?).returns(false)
WorkflowTransition.delete_all
WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5)
WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4)
@@ -70,6 +103,52 @@ class ReportsControllerTest < Redmine::ControllerTest
end
end
+ def test_get_issue_report_details_by_tracker_with_subprojects_issues
+ Setting.stubs(:display_subprojects_issues?).returns(true)
+ get :issue_report_details, :params => {
+ :id => 1,
+ :detail => 'tracker'
+ }
+
+ assert_response :success
+ # Count subprojects issues
+ assert_select 'table.list tbody :nth-child(1)' do
+ assert_select 'td', :text => 'Bug'
+ assert_select ':nth-child(2)', :text => '5' # status:1
+ assert_select ':nth-child(3)', :text => '-' # status:2
+ assert_select ':nth-child(4)', :text => '-' # status:3
+ assert_select ':nth-child(5)', :text => '-' # status:4
+ assert_select ':nth-child(6)', :text => '3' # status:5
+ assert_select ':nth-child(7)', :text => '-' # status:6
+ assert_select ':nth-child(8)', :text => '5' # open
+ assert_select ':nth-child(9)', :text => '3' # closed
+ assert_select ':nth-child(10)', :text => '8' # total
+ end
+ end
+
+ def test_get_issue_report_details_by_tracker_without_subprojects_issues
+ Setting.stubs(:display_subprojects_issues?).returns(false)
+ get :issue_report_details, :params => {
+ :id => 1,
+ :detail => 'tracker'
+ }
+
+ assert_response :success
+ # Do not count subprojects issues
+ assert_select 'table.list tbody :nth-child(1)' do
+ assert_select 'td', :text => 'Bug'
+ assert_select ':nth-child(2)', :text => '3' # status:1
+ assert_select ':nth-child(3)', :text => '-' # status:2
+ assert_select ':nth-child(4)', :text => '-' # status:3
+ assert_select ':nth-child(5)', :text => '-' # status:4
+ assert_select ':nth-child(6)', :text => '3' # status:5
+ assert_select ':nth-child(7)', :text => '-' # status:6
+ assert_select ':nth-child(8)', :text => '3' # open
+ assert_select ':nth-child(9)', :text => '3' # closed
+ assert_select ':nth-child(10)', :text => '6' # total
+ end
+ end
+
def test_get_issue_report_details_by_tracker_should_show_issue_count
Issue.delete_all
Issue.generate!(:tracker_id => 1)
diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb
index 4d2b68663..a6ace2fa0 100644
--- a/test/unit/issue_test.rb
+++ b/test/unit/issue_test.rb
@@ -2756,45 +2756,63 @@ class IssueTest < ActiveSupport::TestCase
end
test "#by_tracker" do
- User.current = User.anonymous
+ User.current = User.find(2)
groups = Issue.by_tracker(Project.find(1))
- assert_equal 3, groups.count
+ groups_containing_subprojects = Issue.by_tracker(Project.find(1), true)
assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
+ assert_equal 13, groups_containing_subprojects.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_version" do
- User.current = User.anonymous
- groups = Issue.by_version(Project.find(1))
- assert_equal 3, groups.count
+ User.current = User.find(2)
+ project = Project.find(1)
+ Issue.generate!(:project_id => project.descendants.visible.first, :fixed_version_id => project.shared_versions.find_by(:sharing => 'tree').id)
+
+ groups = Issue.by_version(project)
+ groups_containing_subprojects = Issue.by_version(project, true)
assert_equal 3, groups.inject(0) {|sum, group| sum + group['total'].to_i}
+ assert_equal 4, groups_containing_subprojects.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_priority" do
- User.current = User.anonymous
- groups = Issue.by_priority(Project.find(1))
- assert_equal 4, groups.count
+ User.current = User.find(2)
+ project = Project.find(1)
+ groups = Issue.by_priority(project)
+ groups_containing_subprojects = Issue.by_priority(project, true)
assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
+ assert_equal 13, groups_containing_subprojects.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_category" do
- User.current = User.anonymous
- groups = Issue.by_category(Project.find(1))
- assert_equal 2, groups.count
+ User.current = User.find(2)
+ project = Project.find(1)
+ issue_category = IssueCategory.create(:project => project.descendants.visible.first, :name => 'test category')
+ Issue.generate!(:project_id => project.descendants.visible.first, :category_id => issue_category.id)
+
+ groups = Issue.by_category(project)
+ groups_containing_subprojects = Issue.by_category(project, true)
assert_equal 3, groups.inject(0) {|sum, group| sum + group['total'].to_i}
+ assert_equal 4, groups_containing_subprojects.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_assigned_to" do
- User.current = User.anonymous
- groups = Issue.by_assigned_to(Project.find(1))
- assert_equal 2, groups.count
+ User.current = User.find(2)
+ project = Project.find(1)
+ Issue.generate!(:project_id => project.descendants.visible.first, :assigned_to => User.current)
+
+ groups = Issue.by_assigned_to(project)
+ groups_containing_subprojects = Issue.by_assigned_to(project, true)
assert_equal 2, groups.inject(0) {|sum, group| sum + group['total'].to_i}
+ assert_equal 3, groups_containing_subprojects.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_author" do
- User.current = User.anonymous
- groups = Issue.by_author(Project.find(1))
- assert_equal 4, groups.count
+ User.current = User.find(2)
+ project = Project.find(1)
+ groups = Issue.by_author(project)
+ groups_containing_subprojects = Issue.by_author(project, true)
assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
+ assert_equal 13, groups_containing_subprojects.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_subproject" do