xml.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 648 行 · 第 1/2 页
PHP
648 行
<?php /** * base include file for SimpleTest * @package SimpleTest * @subpackage UnitTester * @version $Id: xml.php 163 2008-01-14 04:40:16Z matt $ */ /**#@+ * include other SimpleTest class files */ require_once(dirname(__FILE__) . '/scorer.php'); /**#@-*/ /** * Creates the XML needed for remote communication * by SimpleTest. * @package SimpleTest * @subpackage UnitTester */ class XmlReporter extends SimpleReporter { var $_indent; var $_namespace; /** * Sets up indentation and namespace. * @param string $namespace Namespace to add to each tag. * @param string $indent Indenting to add on each nesting. * @access public */ function XmlReporter($namespace = false, $indent = ' ') { $this->SimpleReporter(); $this->_namespace = ($namespace ? $namespace . ':' : ''); $this->_indent = $indent; } /** * Calculates the pretty printing indent level * from the current level of nesting. * @param integer $offset Extra indenting level. * @return string Leading space. * @access protected */ function _getIndent($offset = 0) { return str_repeat( $this->_indent, count($this->getTestList()) + $offset); } /** * Converts character string to parsed XML * entities string. * @param string text Unparsed character data. * @return string Parsed character data. * @access public */ function toParsedXml($text) { return str_replace( array('&', '<', '>', '"', '\''), array('&', '<', '>', '"', '''), $text); } /** * Paints the start of a group test. * @param string $test_name Name of test that is starting. * @param integer $size Number of test cases starting. * @access public */ function paintGroupStart($test_name, $size) { parent::paintGroupStart($test_name, $size); print $this->_getIndent(); print "<" . $this->_namespace . "group size=\"$size\">\n"; print $this->_getIndent(1); print "<" . $this->_namespace . "name>" . $this->toParsedXml($test_name) . "</" . $this->_namespace . "name>\n"; } /** * Paints the end of a group test. * @param string $test_name Name of test that is ending. * @access public */ function paintGroupEnd($test_name) { print $this->_getIndent(); print "</" . $this->_namespace . "group>\n"; parent::paintGroupEnd($test_name); } /** * Paints the start of a test case. * @param string $test_name Name of test that is starting. * @access public */ function paintCaseStart($test_name) { parent::paintCaseStart($test_name); print $this->_getIndent(); print "<" . $this->_namespace . "case>\n"; print $this->_getIndent(1); print "<" . $this->_namespace . "name>" . $this->toParsedXml($test_name) . "</" . $this->_namespace . "name>\n"; } /** * Paints the end of a test case. * @param string $test_name Name of test that is ending. * @access public */ function paintCaseEnd($test_name) { print $this->_getIndent(); print "</" . $this->_namespace . "case>\n"; parent::paintCaseEnd($test_name); } /** * Paints the start of a test method. * @param string $test_name Name of test that is starting. * @access public */ function paintMethodStart($test_name) { parent::paintMethodStart($test_name); print $this->_getIndent(); print "<" . $this->_namespace . "test>\n"; print $this->_getIndent(1); print "<" . $this->_namespace . "name>" . $this->toParsedXml($test_name) . "</" . $this->_namespace . "name>\n"; } /** * Paints the end of a test method. * @param string $test_name Name of test that is ending. * @param integer $progress Number of test cases ending. * @access public */ function paintMethodEnd($test_name) { print $this->_getIndent(); print "</" . $this->_namespace . "test>\n"; parent::paintMethodEnd($test_name); } /** * Paints pass as XML. * @param string $message Message to encode. * @access public */ function paintPass($message) { parent::paintPass($message); print $this->_getIndent(1); print "<" . $this->_namespace . "pass>"; print $this->toParsedXml($message); print "</" . $this->_namespace . "pass>\n"; } /** * Paints failure as XML. * @param string $message Message to encode. * @access public */ function paintFail($message) { parent::paintFail($message); print $this->_getIndent(1); print "<" . $this->_namespace . "fail>"; print $this->toParsedXml($message); print "</" . $this->_namespace . "fail>\n"; } /** * Paints error as XML. * @param string $message Message to encode. * @access public */ function paintError($message) { parent::paintError($message); print $this->_getIndent(1); print "<" . $this->_namespace . "exception>"; print $this->toParsedXml($message); print "</" . $this->_namespace . "exception>\n"; } /** * Paints exception as XML. * @param Exception $exception Exception to encode. * @access public */ function paintException($exception) { parent::paintException($exception); print $this->_getIndent(1); print "<" . $this->_namespace . "exception>"; $message = 'Unexpected exception of type [' . get_class($exception) . '] with message ['. $exception->getMessage() . '] in ['. $exception->getFile() . ' line ' . $exception->getLine() . ']'; print $this->toParsedXml($message); print "</" . $this->_namespace . "exception>\n"; } /** * Paints the skipping message and tag. * @param string $message Text to display in skip tag. * @access public */ function paintSkip($message) { parent::paintSkip($message); print $this->_getIndent(1); print "<" . $this->_namespace . "skip>"; print $this->toParsedXml($message); print "</" . $this->_namespace . "skip>\n"; } /** * Paints a simple supplementary message. * @param string $message Text to display. * @access public */ function paintMessage($message) { parent::paintMessage($message); print $this->_getIndent(1); print "<" . $this->_namespace . "message>"; print $this->toParsedXml($message); print "</" . $this->_namespace . "message>\n"; } /** * Paints a formatted ASCII message such as a * variable dump. * @param string $message Text to display. * @access public */ function paintFormattedMessage($message) { parent::paintFormattedMessage($message); print $this->_getIndent(1); print "<" . $this->_namespace . "formatted>"; print "<![CDATA[$message]]>"; print "</" . $this->_namespace . "formatted>\n"; } /** * Serialises the event object. * @param string $type Event type as text. * @param mixed $payload Message or object. * @access public */ function paintSignal($type, &$payload) { parent::paintSignal($type, $payload); print $this->_getIndent(1); print "<" . $this->_namespace . "signal type=\"$type\">"; print "<![CDATA[" . serialize($payload) . "]]>"; print "</" . $this->_namespace . "signal>\n"; } /** * Paints the test document header. * @param string $test_name First test top level * to start. * @access public * @abstract */ function paintHeader($test_name) { if (! SimpleReporter::inCli()) { header('Content-type: text/xml'); } print "<?xml version=\"1.0\""; if ($this->_namespace) { print " xmlns:" . $this->_namespace . "=\"www.lastcraft.com/SimpleTest/Beta3/Report\""; } print "?>\n"; print "<" . $this->_namespace . "run>\n"; } /** * Paints the test document footer. * @param string $test_name The top level test. * @access public * @abstract */ function paintFooter($test_name) { print "</" . $this->_namespace . "run>\n"; } } /** * Accumulator for incoming tag. Holds the * incoming test structure information for * later dispatch to the reporter. * @package SimpleTest * @subpackage UnitTester */ class NestingXmlTag { var $_name; var $_attributes; /** * Sets the basic test information except * the name. * @param hash $attributes Name value pairs. * @access public */ function NestingXmlTag($attributes) { $this->_name = false; $this->_attributes = $attributes; } /** * Sets the test case/method name. * @param string $name Name of test. * @access public */ function setName($name) { $this->_name = $name; } /** * Accessor for name. * @return string Name of test. * @access public */ function getName() { return $this->_name; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?