diff options
-rw-r--r-- | lib/redmine/views/builders/xml.rb | 5 | ||||
-rw-r--r-- | test/integration/api_test/issues_test.rb | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/redmine/views/builders/xml.rb b/lib/redmine/views/builders/xml.rb index 37fd25d39..9f80a6088 100644 --- a/lib/redmine/views/builders/xml.rb +++ b/lib/redmine/views/builders/xml.rb @@ -30,9 +30,10 @@ module Redmine target! end - def method_missing(sym, *args, &block) + # Overrides Builder::XmlBase#tag! to format timestamps in ISO 8601 + def tag!(sym, *args, &block) if args.size == 1 && args.first.is_a?(::Time) - __send__ sym, args.first.xmlschema, &block + tag! sym, args.first.xmlschema, &block else super end diff --git a/test/integration/api_test/issues_test.rb b/test/integration/api_test/issues_test.rb index 78775eaed..b71b268b8 100644 --- a/test/integration/api_test/issues_test.rb +++ b/test/integration/api_test/issues_test.rb @@ -183,6 +183,15 @@ class Redmine::ApiTest::IssuesTest < Redmine::ApiTest::Base end end + test "GET /issues/:id.xml with journals should format timestamps in ISO 8601" do + get '/issues/1.xml?include=journals' + + iso_date = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/ + assert_select 'issue>created_on', :text => iso_date + assert_select 'issue>updated_on', :text => iso_date + assert_select 'issue journal>created_on', :text => iso_date + end + test "GET /issues/:id.xml with custom fields" do get '/issues/3.xml' |