summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/integration/api_test/issues_test.rb64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/integration/api_test/issues_test.rb b/test/integration/api_test/issues_test.rb
index 97483171f..8b23dccc8 100644
--- a/test/integration/api_test/issues_test.rb
+++ b/test/integration/api_test/issues_test.rb
@@ -350,6 +350,70 @@ class Redmine::ApiTest::IssuesTest < Redmine::ApiTest::Base
end
end
+ test "GET /issues/:id.xml should contains total_estimated_hours and total_spent_hours" do
+ parent = Issue.find(3)
+ child = Issue.generate!(:parent_issue_id => parent.id, :estimated_hours => 3.0)
+ TimeEntry.create!(:project => child.project, :issue => child, :user => child.author, :spent_on => child.author.today,
+ :hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first.id)
+ get '/issues/3.xml'
+
+ assert_equal 'application/xml', response.content_type
+ assert_select 'issue' do
+ assert_select 'estimated_hours', parent.estimated_hours.to_s
+ assert_select 'total_estimated_hours', (parent.estimated_hours.to_f + 3.0).to_s
+ assert_select 'spent_hours', parent.spent_hours.to_s
+ assert_select 'total_spent_hours', (parent.spent_hours.to_f + 2.5).to_s
+ end
+ end
+
+ test "GET /issues/:id.xml should contains total_estimated_hours, and should not contains spent_hours and total_spent_hours when permission does not exists" do
+ parent = Issue.find(3)
+ child = Issue.generate!(:parent_issue_id => parent.id, :estimated_hours => 3.0)
+ # remove permission!
+ Role.anonymous.remove_permission! :view_time_entries
+ #Role.all.each { |role| role.remove_permission! :view_time_entries }
+ get '/issues/3.xml'
+
+ assert_equal 'application/xml', response.content_type
+ assert_select 'issue' do
+ assert_select 'estimated_hours', parent.estimated_hours.to_s
+ assert_select 'total_estimated_hours', (parent.estimated_hours.to_f + 3.0).to_s
+ assert_select 'spent_hours', false
+ assert_select 'total_spent_hours', false
+ end
+ end
+
+ test "GET /issues/:id.json should contains total_estimated_hours and total_spent_hours" do
+ parent = Issue.find(3)
+ child = Issue.generate!(:parent_issue_id => parent.id, :estimated_hours => 3.0)
+ TimeEntry.create!(:project => child.project, :issue => child, :user => child.author, :spent_on => child.author.today,
+ :hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first.id)
+ get '/issues/3.json'
+
+ assert_equal 'application/json', response.content_type
+ json = ActiveSupport::JSON.decode(response.body)
+ assert_equal parent.estimated_hours, json['issue']['estimated_hours']
+ assert_equal (parent.estimated_hours.to_f + 3.0), json['issue']['total_estimated_hours']
+ assert_equal parent.spent_hours, json['issue']['spent_hours']
+ assert_equal (parent.spent_hours.to_f + 2.5), json['issue']['total_spent_hours']
+ end
+
+ test "GET /issues/:id.json should contains total_estimated_hours, and should not contains spent_hours and total_spent_hours when permission does not exists" do
+ parent = Issue.find(3)
+ child = Issue.generate!(:parent_issue_id => parent.id, :estimated_hours => 3.0)
+ # remove permission!
+ Role.anonymous.remove_permission! :view_time_entries
+ #Role.all.each { |role| role.remove_permission! :view_time_entries }
+ get '/issues/3.json'
+
+ assert_equal 'application/json', response.content_type
+ json = ActiveSupport::JSON.decode(response.body)
+ assert_equal parent.estimated_hours, json['issue']['estimated_hours']
+ assert_equal (parent.estimated_hours.to_f + 3.0), json['issue']['total_estimated_hours']
+ assert_equal nil, json['issue']['spent_hours']
+ assert_equal nil, json['issue']['total_spent_hours']
+ end
+
test "POST /issues.xml should create an issue with the attributes" do
payload = <<-XML