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('&amp;', '&lt;', '&gt;', '&quot;', '&apos;'),                    $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 + -
显示快捷键?