]> source.dussan.org Git - redmine.git/commitdiff
Fixed that timestamps may not be formatted as expected in XML responses (#19065).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 16 Feb 2015 17:57:52 +0000 (17:57 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 16 Feb 2015 17:57:52 +0000 (17:57 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@14015 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/views/builders/xml.rb
test/integration/api_test/issues_test.rb

index 37fd25d391c593540cceda8310c909f69ed53a88..9f80a608818df81f88973784902c5656a813c398 100644 (file)
@@ -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
index 78775eaedfd94731c2ae5ea08da5d42969236402..b71b268b847c78eacdea0c73cbbdce389e758a61 100644 (file)
@@ -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'