Commit:    26b37f1792dfaf9b0b30f81e492c8f68b9ece571
Author:    Anthony Ferrara <ircmax...@php.net>         Fri, 6 Jul 2012 22:37:50 
-0400
Parents:   157ddd95773114c1148536b4b32fcbedf0c79b20
Branches:  PHP-5.3 PHP-5.4 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=26b37f1792dfaf9b0b30f81e492c8f68b9ece571

Log:
Fix two issues with run-tests.php

1. E_STRICT error due to passing return of array_intersect() into reset() 
directly
2. Details in junit output can produce invalid UTF-8 and XML due to unescaped 
characters

Changed paths:
  M  run-tests.php


Diff:
diff --git a/run-tests.php b/run-tests.php
index 2a46986..302167a 100755
--- a/run-tests.php
+++ b/run-tests.php
@@ -2668,12 +2668,15 @@ function junit_mark_test_as($type, $file_name, 
$test_name, $time = null, $messag
        $time = null !== $time ? $time : junit_get_timer($file_name);
        junit_suite_record($suite, 'execution_time', $time);
 
+       $escaped_details = htmlspecialchars($details, ENT_QUOTES, 'UTF-8');
+
     $escaped_test_name = basename($file_name) . ' - ' . 
htmlspecialchars($test_name, ENT_QUOTES);
     $JUNIT['files'][$file_name]['xml'] = "<testcase classname='$suite' 
name='$escaped_test_name' time='$time'>\n";
 
        if (is_array($type)) {
                $output_type = $type[0] . 'ED';
-               $type = reset(array_intersect(array('XFAIL', 'FAIL'), $type));
+               $temp = array_intersect(array('XFAIL', 'FAIL'), $type);
+               $type = reset($temp);
        } else {
                $output_type = $type . 'ED';
        }
@@ -2688,10 +2691,10 @@ function junit_mark_test_as($type, $file_name, 
$test_name, $time = null, $messag
                $JUNIT['files'][$file_name]['xml'] .= 
"<skipped>$message</skipped>\n";
        } elseif('FAIL' == $type) {
                junit_suite_record($suite, 'test_fail');
-               $JUNIT['files'][$file_name]['xml'] .= "<failure 
type='$output_type' message='$message'>$details</failure>\n";
+               $JUNIT['files'][$file_name]['xml'] .= "<failure 
type='$output_type' message='$message'>$escaped_details</failure>\n";
        } else {
                junit_suite_record($suite, 'test_error');
-               $JUNIT['files'][$file_name]['xml'] .= "<error 
type='$output_type' message='$message'>$details</error>\n";
+               $JUNIT['files'][$file_name]['xml'] .= "<error 
type='$output_type' message='$message'>$escaped_details</error>\n";
        }
 
        $JUNIT['files'][$file_name]['xml'] .= "</testcase>\n";


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to