@@ -4012,16 +4012,11 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
40124012  static  void  PrintXmlUnitTest (::std::ostream* stream,
40134013                               const  UnitTest& unit_test);
40144014
4015-   //  Produces a string representing the test properties in a result as space
4016-   //  delimited XML attributes based on the property key="value" pairs.
4017-   //  When the std::string is not empty, it includes a space at the beginning,
4018-   //  to delimit this attribute from prior attributes.
4019-   static  std::string TestPropertiesAsXmlAttributes (const  TestResult& result);
4020- 
40214015  //  Streams an XML representation of the test properties of a TestResult
40224016  //  object.
40234017  static  void  OutputXmlTestProperties (std::ostream* stream,
4024-                                       const  TestResult& result);
4018+                                       const  TestResult& result,
4019+                                       const  std::string& indent);
40254020
40264021  //  The output file.
40274022  const  std::string output_file_;
@@ -4355,7 +4350,7 @@ void XmlUnitTestResultPrinter::OutputXmlTestResult(::std::ostream* stream,
43554350    if  (failures == 0  && skips == 0 ) {
43564351      *stream << " >\n " 
43574352    }
4358-     OutputXmlTestProperties (stream, result);
4353+     OutputXmlTestProperties (stream, result,  /* indent= */ "        " 
43594354    *stream << "     </testcase>\n " 
43604355  }
43614356}
@@ -4384,9 +4379,10 @@ void XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream* stream,
43844379    OutputXmlAttribute (
43854380        stream, kTestsuite , " timestamp" 
43864381        FormatEpochTimeInMillisAsIso8601 (test_suite.start_timestamp ()));
4387-     *stream << TestPropertiesAsXmlAttributes (test_suite.ad_hoc_test_result ());
43884382  }
43894383  *stream << " >\n " 
4384+   OutputXmlTestProperties (stream, test_suite.ad_hoc_test_result (),
4385+                           /* indent=*/ "     " 
43904386  for  (int  i = 0 ; i < test_suite.total_test_count (); ++i) {
43914387    if  (test_suite.GetTestInfo (i)->is_reportable ())
43924388      OutputXmlTestInfo (stream, test_suite.name (), *test_suite.GetTestInfo (i));
@@ -4424,11 +4420,12 @@ void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream,
44244420    OutputXmlAttribute (stream, kTestsuites , " random_seed" 
44254421                       StreamableToString (unit_test.random_seed ()));
44264422  }
4427-   *stream << TestPropertiesAsXmlAttributes (unit_test.ad_hoc_test_result ());
44284423
44294424  OutputXmlAttribute (stream, kTestsuites , " name" " AllTests" 
44304425  *stream << " >\n " 
44314426
4427+   OutputXmlTestProperties (stream, unit_test.ad_hoc_test_result (),
4428+                           /* indent=*/ "   " 
44324429  for  (int  i = 0 ; i < unit_test.total_test_suite_count (); ++i) {
44334430    if  (unit_test.GetTestSuite (i)->reportable_test_count () > 0 )
44344431      PrintXmlTestSuite (stream, *unit_test.GetTestSuite (i));
@@ -4465,37 +4462,24 @@ void XmlUnitTestResultPrinter::PrintXmlTestsList(
44654462  *stream << " </" kTestsuites  << " >\n " 
44664463}
44674464
4468- //  Produces a string representing the test properties in a result as space
4469- //  delimited XML attributes based on the property key="value" pairs.
4470- std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes (
4471-     const  TestResult& result) {
4472-   Message attributes;
4473-   for  (int  i = 0 ; i < result.test_property_count (); ++i) {
4474-     const  TestProperty& property = result.GetTestProperty (i);
4475-     attributes << "  " key () << " =" " \" " 
4476-                << EscapeXmlAttribute (property.value ()) << " \" " 
4477-   }
4478-   return  attributes.GetString ();
4479- }
4480- 
44814465void  XmlUnitTestResultPrinter::OutputXmlTestProperties (
4482-     std::ostream* stream, const  TestResult& result) {
4466+     std::ostream* stream, const  TestResult& result,  const  std::string& indent ) {
44834467  const  std::string kProperties  = " properties" 
44844468  const  std::string kProperty  = " property" 
44854469
44864470  if  (result.test_property_count () <= 0 ) {
44874471    return ;
44884472  }
44894473
4490-   *stream << "        <" kProperties  << " >\n " 
4474+   *stream << indent <<  " <" kProperties  << " >\n " 
44914475  for  (int  i = 0 ; i < result.test_property_count (); ++i) {
44924476    const  TestProperty& property = result.GetTestProperty (i);
4493-     *stream << "          <" kProperty ;
4477+     *stream << indent <<  "   <" kProperty ;
44944478    *stream << "  name=\" " EscapeXmlAttribute (property.key ()) << " \" " 
44954479    *stream << "  value=\" " EscapeXmlAttribute (property.value ()) << " \" " 
44964480    *stream << " />\n " 
44974481  }
4498-   *stream << "        </" kProperties  << " >\n " 
4482+   *stream << indent <<  " </" kProperties  << " >\n " 
44994483}
45004484
45014485//  End XmlUnitTestResultPrinter
0 commit comments