Initial Commit
This commit is contained in:
122
database/php/pear/PHPUnit2/Extensions/ExceptionTestCase.php
Normal file
122
database/php/pear/PHPUnit2/Extensions/ExceptionTestCase.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: ExceptionTestCase.php,v 1.15.2.6 2006/02/20 07:42:59 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestCase.php';
|
||||
|
||||
/**
|
||||
* A TestCase that expects a specified Exception to be thrown.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Extensions_ExceptionTestCase extends PHPUnit2_Framework_TestCase {
|
||||
/**
|
||||
* The name of the expected Exception.
|
||||
*
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
private $expectedException = NULL;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function getExpectedException() {
|
||||
return $this->expectedException;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $exceptionName
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function setExpectedException($exceptionName) {
|
||||
if ((is_string($exceptionName) && class_exists($exceptionName)) || $exceptionName === NULL) {
|
||||
$this->expectedException = $exceptionName;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @access protected
|
||||
*/
|
||||
protected function runTest() {
|
||||
try {
|
||||
parent::runTest();
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
if ($this->expectedException !== NULL &&
|
||||
$e instanceof $this->expectedException) {
|
||||
return;
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->expectedException !== NULL) {
|
||||
$this->fail('Expected exception ' . $this->expectedException);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
128
database/php/pear/PHPUnit2/Extensions/PerformanceTestCase.php
Normal file
128
database/php/pear/PHPUnit2/Extensions/PerformanceTestCase.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: PerformanceTestCase.php,v 1.15.2.5 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.1.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestCase.php';
|
||||
|
||||
require_once 'Benchmark/Timer.php';
|
||||
|
||||
/**
|
||||
* A TestCase that expects a TestCase to be executed
|
||||
* meeting a given time limit.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Extensions_PerformanceTestCase extends PHPUnit2_Framework_TestCase {
|
||||
/**
|
||||
* @var integer
|
||||
* @access private
|
||||
*/
|
||||
private $maxRunningTime = 0;
|
||||
|
||||
/**
|
||||
* @access protected
|
||||
*/
|
||||
protected function runTest() {
|
||||
$timer = new Benchmark_Timer;
|
||||
|
||||
$timer->start();
|
||||
parent::runTest();
|
||||
$timer->stop();
|
||||
|
||||
if ($this->maxRunningTime != 0 &&
|
||||
$timer->timeElapsed() > $this->maxRunningTime) {
|
||||
$this->fail(
|
||||
sprintf(
|
||||
'expected running time: <= %s but was: %s',
|
||||
|
||||
$this->maxRunningTime,
|
||||
$timer->timeElapsed()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $maxRunningTime
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
public function setMaxRunningTime($maxRunningTime) {
|
||||
if (is_integer($maxRunningTime) &&
|
||||
$maxRunningTime >= 0) {
|
||||
$this->maxRunningTime = $maxRunningTime;
|
||||
} else {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return integer
|
||||
* @access public
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
public function getMaxRunningTime() {
|
||||
return $this->maxRunningTime;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
138
database/php/pear/PHPUnit2/Extensions/RepeatedTest.php
Normal file
138
database/php/pear/PHPUnit2/Extensions/RepeatedTest.php
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: RepeatedTest.php,v 1.15.2.4 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Extensions/TestDecorator.php';
|
||||
|
||||
/**
|
||||
* A Decorator that runs a test repeatedly.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Extensions_RepeatedTest extends PHPUnit2_Extensions_TestDecorator {
|
||||
/**
|
||||
* @var integer
|
||||
* @access private
|
||||
*/
|
||||
private $timesRepeat = 1;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param integer $timesRepeat
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function __construct(PHPUnit2_Framework_Test $test, $timesRepeat = 1) {
|
||||
parent::__construct($test);
|
||||
|
||||
if (is_integer($timesRepeat) &&
|
||||
$timesRepeat >= 0) {
|
||||
$this->timesRepeat = $timesRepeat;
|
||||
} else {
|
||||
throw new Exception(
|
||||
'Argument 2 must be a positive integer.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Counts the number of test cases that
|
||||
* will be run by this test.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function countTestCases() {
|
||||
return $this->timesRepeat * $this->test->countTestCases();
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the decorated test and collects the
|
||||
* result in a TestResult.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function run($result = NULL) {
|
||||
if ($result === NULL) {
|
||||
$result = $this->createResult();
|
||||
}
|
||||
|
||||
// XXX: Workaround for missing ability to declare type-hinted parameters as optional.
|
||||
else if (!($result instanceof PHPUnit2_Framework_TestResult)) {
|
||||
throw new Exception(
|
||||
'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.'
|
||||
);
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $this->timesRepeat && !$result->shouldStop(); $i++) {
|
||||
$this->test->run($result);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
174
database/php/pear/PHPUnit2/Extensions/TestDecorator.php
Normal file
174
database/php/pear/PHPUnit2/Extensions/TestDecorator.php
Normal file
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestDecorator.php,v 1.14.2.4 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/Assert.php';
|
||||
require_once 'PHPUnit2/Framework/Test.php';
|
||||
require_once 'PHPUnit2/Framework/TestResult.php';
|
||||
|
||||
/**
|
||||
* A Decorator for Tests.
|
||||
*
|
||||
* Use TestDecorator as the base class for defining new
|
||||
* test decorators. Test decorator subclasses can be introduced
|
||||
* to add behaviour before or after a test is run.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Extensions_TestDecorator extends PHPUnit2_Framework_Assert implements PHPUnit2_Framework_Test {
|
||||
/**
|
||||
* The Test to be decorated.
|
||||
*
|
||||
* @var object
|
||||
* @access protected
|
||||
*/
|
||||
protected $test = NULL;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function __construct(PHPUnit2_Framework_Test $test) {
|
||||
$this->test = $test;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of the test.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function toString() {
|
||||
return $this->test->toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the test and collects the
|
||||
* result in a TestResult.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @access public
|
||||
*/
|
||||
public function basicRun(PHPUnit2_Framework_TestResult $result) {
|
||||
$this->test->run($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Counts the number of test cases that
|
||||
* will be run by this test.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function countTestCases() {
|
||||
return $this->test->countTestCases();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a default TestResult object.
|
||||
*
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @access protected
|
||||
*/
|
||||
protected function createResult() {
|
||||
return new PHPUnit2_Framework_TestResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the test to be run.
|
||||
*
|
||||
* @return PHPUnit2_Framework_Test
|
||||
* @access public
|
||||
*/
|
||||
public function getTest() {
|
||||
return $this->test;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the decorated test and collects the
|
||||
* result in a TestResult.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function run($result = NULL) {
|
||||
if ($result === NULL) {
|
||||
$result = $this->createResult();
|
||||
}
|
||||
|
||||
// XXX: Workaround for missing ability to declare type-hinted parameters as optional.
|
||||
else if (!($result instanceof PHPUnit2_Framework_TestResult)) {
|
||||
throw new Exception(
|
||||
'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.'
|
||||
);
|
||||
}
|
||||
|
||||
$this->basicRun($result);
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
154
database/php/pear/PHPUnit2/Extensions/TestSetup.php
Normal file
154
database/php/pear/PHPUnit2/Extensions/TestSetup.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestSetup.php,v 1.13.2.6 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestSuite.php';
|
||||
require_once 'PHPUnit2/Extensions/TestDecorator.php';
|
||||
|
||||
/**
|
||||
* A Decorator to set up and tear down additional fixture state.
|
||||
* Subclass TestSetup and insert it into your tests when you want
|
||||
* to set up additional state once before the tests are run.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Extensions_TestSetup extends PHPUnit2_Extensions_TestDecorator {
|
||||
/**
|
||||
* Runs the decorated test and collects the
|
||||
* result in a TestResult.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function run($result = NULL) {
|
||||
if ($result === NULL) {
|
||||
$result = $this->createResult();
|
||||
}
|
||||
|
||||
// XXX: Workaround for missing ability to declare type-hinted parameters as optional.
|
||||
else if (!($result instanceof PHPUnit2_Framework_TestResult)) {
|
||||
throw new Exception(
|
||||
'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.'
|
||||
);
|
||||
}
|
||||
|
||||
$this->setUp();
|
||||
$this->copyFixtureToTest();
|
||||
$this->basicRun($result);
|
||||
$this->tearDown();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the fixture set up by setUp() to the test.
|
||||
*
|
||||
* @access private
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
private function copyFixtureToTest() {
|
||||
$object = new ReflectionClass($this);
|
||||
|
||||
foreach ($object->getProperties() as $property) {
|
||||
$name = $property->getName();
|
||||
|
||||
if ($name != 'test') {
|
||||
$this->doCopyFixtureToTest($this->test, $name, $this->$name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
private function doCopyFixtureToTest($object, $name, &$value) {
|
||||
if ($object instanceof PHPUnit2_Framework_TestSuite) {
|
||||
foreach ($object->tests() as $test) {
|
||||
$this->doCopyFixtureToTest($test, $name, $value);
|
||||
}
|
||||
} else {
|
||||
$object->$name =& $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the fixture. Override to set up additional fixture
|
||||
* state.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function setUp() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tears down the fixture. Override to tear down the additional
|
||||
* fixture state.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function tearDown() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
626
database/php/pear/PHPUnit2/Framework/Assert.php
Normal file
626
database/php/pear/PHPUnit2/Framework/Assert.php
Normal file
@@ -0,0 +1,626 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Assert.php,v 1.45.2.4 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
require_once 'PHPUnit2/Framework/ComparisonFailure.php';
|
||||
|
||||
/**
|
||||
* A set of assert methods.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
* @static
|
||||
*/
|
||||
class PHPUnit2_Framework_Assert {
|
||||
/**
|
||||
* @var boolean
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static $looselyTyped = FALSE;
|
||||
|
||||
/**
|
||||
* Protect constructor since it is a static only class.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function __construct() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a haystack contains a needle.
|
||||
*
|
||||
* @param mixed $needle
|
||||
* @param mixed $haystack
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.1.0
|
||||
*/
|
||||
public static function assertContains($needle, $haystack, $message = '') {
|
||||
self::doAssertContains($needle, $haystack, TRUE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a haystack does not contain a needle.
|
||||
*
|
||||
* @param mixed $needle
|
||||
* @param mixed $haystack
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.1.0
|
||||
*/
|
||||
public static function assertNotContains($needle, $haystack, $message = '') {
|
||||
self::doAssertContains($needle, $haystack, FALSE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $needle
|
||||
* @param mixed $haystack
|
||||
* @param boolean $condition
|
||||
* @param string $message
|
||||
* @throws Exception
|
||||
* @access private
|
||||
* @static
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
private static function doAssertContains($needle, $haystack, $condition, $message) {
|
||||
$found = FALSE;
|
||||
|
||||
if (is_array($haystack) ||
|
||||
(is_object($haystack) && $haystack instanceof Iterator)) {
|
||||
foreach ($haystack as $straw) {
|
||||
if ($straw === $needle) {
|
||||
$found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else if (is_string($needle) && is_string($haystack)) {
|
||||
if (strpos($haystack, $needle) !== FALSE) {
|
||||
$found = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
if ($condition && !$found) {
|
||||
self::fail(
|
||||
sprintf(
|
||||
'%s%s"%s" does not contain "%s"',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : '',
|
||||
self::objectToString($haystack),
|
||||
self::objectToString($needle)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
else if (!$condition && $found) {
|
||||
self::fail(
|
||||
sprintf(
|
||||
'%s%s"%s" contains "%s"',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : '',
|
||||
self::objectToString($haystack),
|
||||
self::objectToString($needle)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that two variables are equal.
|
||||
*
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @param mixed $delta
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertEquals($expected, $actual, $message = '', $delta = 0) {
|
||||
self::doAssertEquals($expected, $actual, $delta, TRUE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that two variables are not equal.
|
||||
*
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @param mixed $delta
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
public static function assertNotEquals($expected, $actual, $message = '', $delta = 0) {
|
||||
self::doAssertEquals($expected, $actual, $delta, FALSE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param mixed $delta
|
||||
* @param boolean $condition
|
||||
* @param string $message
|
||||
* @access private
|
||||
* @static
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
private static function doAssertEquals($expected, $actual, $delta, $condition, $message) {
|
||||
$equal = FALSE;
|
||||
|
||||
if (is_array($expected)) {
|
||||
if (is_array($actual)) {
|
||||
self::sortArrayRecursively($actual);
|
||||
self::sortArrayRecursively($expected);
|
||||
|
||||
if (self::$looselyTyped) {
|
||||
$actual = self::convertToString($actual);
|
||||
$expected = self::convertToString($expected);
|
||||
}
|
||||
|
||||
$equal = (serialize($expected) == serialize($actual));
|
||||
}
|
||||
}
|
||||
|
||||
else if (is_float($expected) && is_float($actual) && is_float($delta)) {
|
||||
$equal = (abs($expected - $actual) <= $delta);
|
||||
}
|
||||
|
||||
else {
|
||||
$equal = (serialize($expected) == serialize($actual));
|
||||
}
|
||||
|
||||
if ($condition && !$equal) {
|
||||
self::failNotSame(
|
||||
$expected,
|
||||
$actual,
|
||||
$message
|
||||
);
|
||||
}
|
||||
|
||||
else if (!$condition && $equal) {
|
||||
self::failSame(
|
||||
$expected,
|
||||
$actual,
|
||||
$message
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a condition is true.
|
||||
*
|
||||
* @param boolean $condition
|
||||
* @param string $message
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertTrue($condition, $message = '') {
|
||||
if (is_bool($condition)) {
|
||||
if (!$condition) {
|
||||
self::fail($message);
|
||||
}
|
||||
} else {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a condition is false.
|
||||
*
|
||||
* @param boolean $condition
|
||||
* @param string $message
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertFalse($condition, $message = '') {
|
||||
if (is_bool($condition)) {
|
||||
self::assertTrue(!$condition, $message);
|
||||
} else {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a variable is not NULL.
|
||||
*
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertNotNull($actual, $message = '') {
|
||||
if (is_null($actual)) {
|
||||
self::fail(self::format('NOT NULL', 'NULL', $message));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a variable is NULL.
|
||||
*
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertNull($actual, $message = '') {
|
||||
if (!is_null($actual)) {
|
||||
self::fail(self::format('NULL', 'NOT NULL', $message));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that two variables have the same type and value.
|
||||
* Used on objects, it asserts that two variables reference
|
||||
* the same object.
|
||||
*
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertSame($expected, $actual, $message = '') {
|
||||
if ($expected !== $actual) {
|
||||
self::failNotSame($expected, $actual, $message);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that two variables do not have the same type and value.
|
||||
* Used on objects, it asserts that two variables do not reference
|
||||
* the same object.
|
||||
*
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertNotSame($expected, $actual, $message = '') {
|
||||
if ($expected === $actual) {
|
||||
self::failSame($expected, $actual, $message);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a variable is of a given type.
|
||||
*
|
||||
* @param string $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertType($expected, $actual, $message = '') {
|
||||
self::doAssertType($expected, $actual, TRUE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a variable is not of a given type.
|
||||
*
|
||||
* @param string $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public static function assertNotType($expected, $actual, $message = '') {
|
||||
self::doAssertType($expected, $actual, FALSE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param mixed $actual
|
||||
* @param boolean $condition
|
||||
* @param string $message
|
||||
* @access private
|
||||
* @static
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
private static function doAssertType($expected, $actual, $condition, $message) {
|
||||
if (!is_string($expected)) {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
if (is_object($actual)) {
|
||||
$result = $actual instanceof $expected;
|
||||
} else {
|
||||
$result = (gettype($actual) == $expected);
|
||||
}
|
||||
|
||||
if ($condition && !$result) {
|
||||
self::failNotSame(
|
||||
$expected,
|
||||
$actual,
|
||||
$message
|
||||
);
|
||||
}
|
||||
|
||||
else if (!$condition && $result) {
|
||||
self::failSame(
|
||||
$expected,
|
||||
$actual,
|
||||
$message
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a string matches a given regular expression.
|
||||
*
|
||||
* @param string $pattern
|
||||
* @param string $string
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function assertRegExp($pattern, $string, $message = '') {
|
||||
self::doAssertRegExp($pattern, $string, TRUE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a string does not match a given regular expression.
|
||||
*
|
||||
* @param string $pattern
|
||||
* @param string $string
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.1.0
|
||||
*/
|
||||
public static function assertNotRegExp($pattern, $string, $message = '') {
|
||||
self::doAssertRegExp($pattern, $string, FALSE, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $pattern
|
||||
* @param mixed $string
|
||||
* @param boolean $condition
|
||||
* @param string $message
|
||||
* @access private
|
||||
* @static
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
private static function doAssertRegExp($pattern, $string, $condition, $message) {
|
||||
if (!is_string($pattern) || !is_string($string)) {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
$result = preg_match($pattern, $string);
|
||||
|
||||
if ($condition && !$result) {
|
||||
self::fail(
|
||||
sprintf(
|
||||
'%s%s"%s" does not match pattern "%s"',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : '',
|
||||
$string,
|
||||
$pattern
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
else if (!$condition && $result) {
|
||||
self::fail(
|
||||
sprintf(
|
||||
'%s%s"%s" matches pattern "%s"',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : '',
|
||||
$string,
|
||||
$pattern
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fails a test with the given message.
|
||||
*
|
||||
* @param string $message
|
||||
* @throws PHPUnit2_Framework_AssertionFailedError
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function fail($message = '') {
|
||||
throw new PHPUnit2_Framework_AssertionFailedError($message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $message
|
||||
* @throws PHPUnit2_Framework_AssertionFailedError
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static function failSame($message) {
|
||||
self::fail(
|
||||
sprintf(
|
||||
'%s%sexpected not same',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : ''
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @throws PHPUnit2_Framework_AssertionFailedError
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static function failNotSame($expected, $actual, $message) {
|
||||
if (is_string($expected) && is_string($actual)) {
|
||||
throw new PHPUnit2_Framework_ComparisonFailure($expected, $actual, $message);
|
||||
}
|
||||
|
||||
self::fail(
|
||||
sprintf(
|
||||
'%s%sexpected same: <%s> was not: <%s>',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : '',
|
||||
self::objectToString($expected),
|
||||
self::objectToString($actual)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $expected
|
||||
* @param mixed $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function format($expected, $actual, $message) {
|
||||
return sprintf(
|
||||
'%s%sexpected: <%s> but was: <%s>',
|
||||
|
||||
$message,
|
||||
($message != '') ? ' ' : '',
|
||||
self::objectToString($expected),
|
||||
self::objectToString($actual)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param boolean $looselyTyped
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function setLooselyTyped($looselyTyped) {
|
||||
if (is_bool($looselyTyped)) {
|
||||
self::$looselyTyped = $looselyTyped;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a value to a string.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static function convertToString($value) {
|
||||
foreach ($value as $k => $v) {
|
||||
if (is_array($v)) {
|
||||
$value[$k] = self::convertToString($value[$k]);
|
||||
} else if (is_object($v)) {
|
||||
$value[$k] = self::objectToString($value[$k]);
|
||||
} else {
|
||||
settype($value[$k], 'string');
|
||||
}
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $object
|
||||
* @return string
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static function objectToString($object) {
|
||||
if (is_array($object) || is_object($object)) {
|
||||
$object = serialize($object);
|
||||
}
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts an array recursively by its keys.
|
||||
*
|
||||
* @param array $array
|
||||
* @access private
|
||||
* @static
|
||||
* @author Adam Maccabee Trachtenberg <adam@trachtenberg.com>
|
||||
*/
|
||||
private static function sortArrayRecursively(&$array) {
|
||||
ksort($array);
|
||||
|
||||
foreach($array as $k => $v) {
|
||||
if (is_array($v)) {
|
||||
self::sortArrayRecursively($array[$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: AssertionFailedError.php,v 1.9.2.2 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Thrown when an assertion failed.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_AssertionFailedError extends Exception {
|
||||
/**
|
||||
* Wrapper for getMessage() which is declared as final.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function toString() {
|
||||
return $this->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
153
database/php/pear/PHPUnit2/Framework/ComparisonFailure.php
Normal file
153
database/php/pear/PHPUnit2/Framework/ComparisonFailure.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: ComparisonFailure.php,v 1.13.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/Assert.php';
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
|
||||
/**
|
||||
* Thrown when an assertion for string equality failed.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_ComparisonFailure extends PHPUnit2_Framework_AssertionFailedError {
|
||||
/**
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
private $expected = '';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
private $actual = '';
|
||||
|
||||
/**
|
||||
* Constructs a comparison failure.
|
||||
*
|
||||
* @param string $expected
|
||||
* @param string $actual
|
||||
* @param string $message
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($expected, $actual, $message = '') {
|
||||
parent::__construct($message);
|
||||
|
||||
$this->expected = ($expected === NULL) ? 'NULL' : $expected;
|
||||
$this->actual = ($actual === NULL) ? 'NULL' : $actual;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns "..." in place of common prefix and "..." in
|
||||
* place of common suffix between expected and actual.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function toString() {
|
||||
$end = min(strlen($this->expected), strlen($this->actual));
|
||||
$i = 0;
|
||||
$j = strlen($this->expected) - 1;
|
||||
$k = strlen($this->actual) - 1;
|
||||
|
||||
for (; $i < $end; $i++) {
|
||||
if ($this->expected[$i] != $this->actual[$i]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (; $k >= $i && $j >= $i; $k--,$j--) {
|
||||
if ($this->expected[$j] != $this->actual[$k]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($j < $i && $k < $i) {
|
||||
$expected = $this->expected;
|
||||
$actual = $this->actual;
|
||||
} else {
|
||||
$expected = substr($this->expected, $i, ($j + 1 - $i));
|
||||
$actual = substr($this->actual, $i, ($k + 1 - $i));;
|
||||
|
||||
if ($i <= $end && $i > 0) {
|
||||
$expected = '...' . $expected;
|
||||
$actual = '...' . $actual;
|
||||
}
|
||||
|
||||
if ($j < strlen($this->expected) - 1) {
|
||||
$expected .= '...';
|
||||
}
|
||||
|
||||
if ($k < strlen($this->actual) - 1) {
|
||||
$actual .= '...';
|
||||
}
|
||||
}
|
||||
|
||||
return PHPUnit2_Framework_Assert::format(
|
||||
$expected,
|
||||
$actual,
|
||||
parent::getMessage()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
88
database/php/pear/PHPUnit2/Framework/Error.php
Normal file
88
database/php/pear/PHPUnit2/Framework/Error.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Error.php,v 1.4.2.2 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Wrapper for PHP errors.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.2.0
|
||||
*/
|
||||
class PHPUnit2_Framework_Error extends Exception {
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $message
|
||||
* @param integer $code
|
||||
* @param string $file
|
||||
* @param integer $line
|
||||
* @param array $trace
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($message, $code, $file, $line, $trace) {
|
||||
parent::__construct($message, $code);
|
||||
|
||||
$this->file = $file;
|
||||
$this->line = $line;
|
||||
$this->trace = $trace;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
72
database/php/pear/PHPUnit2/Framework/IncompleteTest.php
Normal file
72
database/php/pear/PHPUnit2/Framework/IncompleteTest.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: IncompleteTest.php,v 1.6.2.2 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* A marker interface for marking any exception/error as result of an unit
|
||||
* test as incomplete implementation or currently not implemented.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Interface available since Release 2.0.0
|
||||
*/
|
||||
interface PHPUnit2_Framework_IncompleteTest {
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
75
database/php/pear/PHPUnit2/Framework/IncompleteTestError.php
Normal file
75
database/php/pear/PHPUnit2/Framework/IncompleteTestError.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: IncompleteTestError.php,v 1.5.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
require_once 'PHPUnit2/Framework/IncompleteTest.php';
|
||||
|
||||
/**
|
||||
* Extension to PHPUnit2_Framework_AssertionFailedError to mark the special
|
||||
* case of an incomplete test.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_IncompleteTestError extends PHPUnit2_Framework_AssertionFailedError implements PHPUnit2_Framework_IncompleteTest {
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
87
database/php/pear/PHPUnit2/Framework/Test.php
Normal file
87
database/php/pear/PHPUnit2/Framework/Test.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Test.php,v 1.12.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* A Test can be run and collect its results.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Interface available since Release 2.0.0
|
||||
*/
|
||||
interface PHPUnit2_Framework_Test {
|
||||
/**
|
||||
* Counts the number of test cases that will be run by this test.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function countTestCases();
|
||||
|
||||
/**
|
||||
* Runs a test and collects its result in a TestResult instance.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @access public
|
||||
*/
|
||||
public function run($result = NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
292
database/php/pear/PHPUnit2/Framework/TestCase.php
Normal file
292
database/php/pear/PHPUnit2/Framework/TestCase.php
Normal file
@@ -0,0 +1,292 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestCase.php,v 1.32.2.5 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/Assert.php';
|
||||
require_once 'PHPUnit2/Framework/Error.php';
|
||||
require_once 'PHPUnit2/Framework/Test.php';
|
||||
require_once 'PHPUnit2/Framework/TestResult.php';
|
||||
|
||||
/**
|
||||
* A TestCase defines the fixture to run multiple tests.
|
||||
*
|
||||
* To define a TestCase
|
||||
*
|
||||
* 1) Implement a subclass of PHPUnit2_Framework_TestCase.
|
||||
* 2) Define instance variables that store the state of the fixture.
|
||||
* 3) Initialize the fixture state by overriding setUp().
|
||||
* 4) Clean-up after a test by overriding tearDown().
|
||||
*
|
||||
* Each test runs in its own fixture so there can be no side effects
|
||||
* among test runs.
|
||||
*
|
||||
* Here is an example:
|
||||
*
|
||||
* <code>
|
||||
* <?php
|
||||
* require_once 'PHPUnit2/Framework/TestCase.php';
|
||||
*
|
||||
* class MathTest extends PHPUnit2_Framework_TestCase {
|
||||
* public $value1;
|
||||
* public $value2;
|
||||
*
|
||||
* public function __construct($name) {
|
||||
* parent::__construct($name);
|
||||
* }
|
||||
*
|
||||
* public function setUp() {
|
||||
* $this->value1 = 2;
|
||||
* $this->value2 = 3;
|
||||
* }
|
||||
* }
|
||||
* ?>
|
||||
* </code>
|
||||
*
|
||||
* For each test implement a method which interacts with the fixture.
|
||||
* Verify the expected results with assertions specified by calling
|
||||
* assert with a boolean.
|
||||
*
|
||||
* <code>
|
||||
* <?php
|
||||
* public function testPass() {
|
||||
* $this->assertTrue($this->value1 + $this->value2 == 5);
|
||||
* }
|
||||
* ?>
|
||||
* </code>
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
* @abstract
|
||||
*/
|
||||
abstract class PHPUnit2_Framework_TestCase extends PHPUnit2_Framework_Assert implements PHPUnit2_Framework_Test {
|
||||
/**
|
||||
* The name of the test case.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
private $name = NULL;
|
||||
|
||||
/**
|
||||
* Constructs a test case with the given name.
|
||||
*
|
||||
* @param string
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($name = NULL) {
|
||||
if ($name !== NULL) {
|
||||
$this->setName($name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of the test case.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function toString() {
|
||||
$class = new ReflectionClass($this);
|
||||
|
||||
return sprintf(
|
||||
'%s(%s)',
|
||||
|
||||
$this->getName(),
|
||||
$class->name
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Counts the number of test cases executed by run(TestResult result).
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function countTestCases() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of a TestCase.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the test case and collects the results in a TestResult object.
|
||||
* If no TestResult object is passed a new one will be created.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function run($result = NULL) {
|
||||
if ($result === NULL) {
|
||||
$result = $this->createResult();
|
||||
}
|
||||
|
||||
// XXX: Workaround for missing ability to declare type-hinted parameters as optional.
|
||||
else if (!($result instanceof PHPUnit2_Framework_TestResult)) {
|
||||
throw new Exception(
|
||||
'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.'
|
||||
);
|
||||
}
|
||||
|
||||
$result->run($this);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the bare test sequence.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function runBare() {
|
||||
$catchedException = NULL;
|
||||
|
||||
$this->setUp();
|
||||
|
||||
try {
|
||||
$this->runTest();
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
$catchedException = $e;
|
||||
}
|
||||
|
||||
$this->tearDown();
|
||||
|
||||
// Workaround for missing "finally".
|
||||
if ($catchedException !== NULL) {
|
||||
throw $catchedException;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override to run the test and assert its state.
|
||||
*
|
||||
* @throws PHPUnit2_Framework_Error
|
||||
* @access protected
|
||||
*/
|
||||
protected function runTest() {
|
||||
if ($this->name === NULL) {
|
||||
throw new PHPUnit2_Framework_Error(
|
||||
'PHPUnit2_Framework_TestCase::$name must not be NULL.'
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
$class = new ReflectionClass($this);
|
||||
$method = $class->getMethod($this->name);
|
||||
}
|
||||
|
||||
catch (ReflectionException $e) {
|
||||
$this->fail($e->getMessage());
|
||||
}
|
||||
|
||||
$method->invoke($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of a TestCase.
|
||||
*
|
||||
* @param string
|
||||
* @access public
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a default TestResult object.
|
||||
*
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @access protected
|
||||
*/
|
||||
protected function createResult() {
|
||||
return new PHPUnit2_Framework_TestResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the fixture, for example, open a network connection.
|
||||
* This method is called before a test is executed.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function setUp() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tears down the fixture, for example, close a network connection.
|
||||
* This method is called after a test is executed.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function tearDown() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
154
database/php/pear/PHPUnit2/Framework/TestFailure.php
Normal file
154
database/php/pear/PHPUnit2/Framework/TestFailure.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestFailure.php,v 1.10.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
require_once 'PHPUnit2/Framework/Test.php';
|
||||
|
||||
/**
|
||||
* A TestFailure collects a failed test together with the caught exception.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_TestFailure {
|
||||
/**
|
||||
* @var PHPUnit2_Framework_Test
|
||||
* @access protected
|
||||
*/
|
||||
protected $failedTest;
|
||||
|
||||
/**
|
||||
* @var Exception
|
||||
* @access protected
|
||||
*/
|
||||
protected $thrownException;
|
||||
|
||||
/**
|
||||
* Constructs a TestFailure with the given test and exception.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $failedTest
|
||||
* @param Exception $thrownException
|
||||
* @access public
|
||||
*/
|
||||
public function __construct(PHPUnit2_Framework_Test $failedTest, Exception $thrownException) {
|
||||
$this->failedTest = $failedTest;
|
||||
$this->thrownException = $thrownException;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a short description of the failure.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function toString() {
|
||||
return sprintf(
|
||||
'%s: %s',
|
||||
|
||||
$this->failedTest,
|
||||
$this->thrownException->getMessage()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the failed test.
|
||||
*
|
||||
* @return Test
|
||||
* @access public
|
||||
*/
|
||||
public function failedTest() {
|
||||
return $this->failedTest;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the thrown exception.
|
||||
*
|
||||
* @return Exception
|
||||
* @access public
|
||||
*/
|
||||
public function thrownException() {
|
||||
return $this->thrownException;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the exception's message.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function exceptionMessage() {
|
||||
return $this->thrownException()->getMessage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns TRUE if the thrown exception
|
||||
* is of type AssertionFailedError.
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
public function isFailure() {
|
||||
return ($this->thrownException() instanceof PHPUnit2_Framework_AssertionFailedError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
135
database/php/pear/PHPUnit2/Framework/TestListener.php
Normal file
135
database/php/pear/PHPUnit2/Framework/TestListener.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestListener.php,v 1.11.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
require_once 'PHPUnit2/Framework/TestSuite.php';
|
||||
|
||||
/**
|
||||
* A Listener for test progress.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Interface available since Release 2.0.0
|
||||
*/
|
||||
interface PHPUnit2_Framework_TestListener {
|
||||
/**
|
||||
* An error occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e);
|
||||
|
||||
/**
|
||||
* A failure occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e);
|
||||
|
||||
/**
|
||||
* Incomplete test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e);
|
||||
|
||||
/**
|
||||
* A test suite started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite);
|
||||
|
||||
/**
|
||||
* A test suite ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite);
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test);
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
447
database/php/pear/PHPUnit2/Framework/TestResult.php
Normal file
447
database/php/pear/PHPUnit2/Framework/TestResult.php
Normal file
@@ -0,0 +1,447 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestResult.php,v 1.32.2.7 2006/02/25 09:44:23 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
require_once 'PHPUnit2/Framework/IncompleteTest.php';
|
||||
require_once 'PHPUnit2/Framework/TestFailure.php';
|
||||
require_once 'PHPUnit2/Framework/TestListener.php';
|
||||
require_once 'PHPUnit2/Util/ErrorHandler.php';
|
||||
require_once 'PHPUnit2/Util/Filter.php';
|
||||
|
||||
/**
|
||||
* A TestResult collects the results of executing a test case.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_TestResult {
|
||||
/**
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $errors = array();
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $failures = array();
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $notImplemented = array();
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $listeners = array();
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
* @access protected
|
||||
*/
|
||||
protected $runTests = 0;
|
||||
|
||||
/**
|
||||
* Code Coverage information provided by Xdebug.
|
||||
*
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $codeCoverageInformation = array();
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @access protected
|
||||
*/
|
||||
protected $collectCodeCoverageInformation = FALSE;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @access private
|
||||
*/
|
||||
private $stop = FALSE;
|
||||
|
||||
/**
|
||||
* Registers a TestListener.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestListener
|
||||
* @access public
|
||||
*/
|
||||
public function addListener(PHPUnit2_Framework_TestListener $listener) {
|
||||
$this->listeners[] = $listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters a TestListener.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestListener $listener
|
||||
* @access public
|
||||
*/
|
||||
public function removeListener(PHPUnit2_Framework_TestListener $listener) {
|
||||
for ($i = 0; $i < sizeof($this->listeners); $i++) {
|
||||
if ($this->listeners[$i] === $listener) {
|
||||
unset($this->listeners[$i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an error to the list of errors.
|
||||
* The passed in exception caused the error.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
if ($e instanceof PHPUnit2_Framework_IncompleteTest) {
|
||||
$this->notImplemented[] = new PHPUnit2_Framework_TestFailure($test, $e);
|
||||
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->addIncompleteTest($test, $e);
|
||||
}
|
||||
} else {
|
||||
$this->errors[] = new PHPUnit2_Framework_TestFailure($test, $e);
|
||||
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->addError($test, $e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a failure to the list of failures.
|
||||
* The passed in exception caused the failure.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
if ($e instanceof PHPUnit2_Framework_IncompleteTest) {
|
||||
$this->notImplemented[] = new PHPUnit2_Framework_TestFailure($test, $e);
|
||||
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->addIncompleteTest($test, $e);
|
||||
}
|
||||
} else {
|
||||
$this->failures[] = new PHPUnit2_Framework_TestFailure($test, $e);
|
||||
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->addFailure($test, $e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Informs the result that a testsuite will be started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->startTestSuite($suite);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Informs the result that a testsuite was completed.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->endTestSuite($suite);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Informs the result that a test will be started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->runTests += $test->countTestCases();
|
||||
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->startTest($test);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Informs the result that a test was completed.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test) {
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->endTest($test);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns TRUE if no incomplete test occured.
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
public function allCompletlyImplemented() {
|
||||
return $this->notImplementedCount() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of incomplete tests.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function notImplementedCount() {
|
||||
return sizeof($this->notImplemented);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an Enumeration for the incomplete tests.
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function notImplemented() {
|
||||
return $this->notImplemented;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of detected errors.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function errorCount() {
|
||||
return sizeof($this->errors);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an Enumeration for the errors.
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function errors() {
|
||||
return $this->errors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of detected failures.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function failureCount() {
|
||||
return sizeof($this->failures);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an Enumeration for the failures.
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function failures() {
|
||||
return $this->failures;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables or disables the collection of Code Coverage information.
|
||||
*
|
||||
* @param boolean $flag
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
public function collectCodeCoverageInformation($flag) {
|
||||
if (is_bool($flag)) {
|
||||
$this->collectCodeCoverageInformation = $flag;
|
||||
} else {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Code Coverage data per test case.
|
||||
*
|
||||
* Format of the result array:
|
||||
*
|
||||
* <code>
|
||||
* array(
|
||||
* "testCase" => array(
|
||||
* "/tested/code.php" => array(
|
||||
* linenumber => flag
|
||||
* )
|
||||
* )
|
||||
* )
|
||||
* </code>
|
||||
*
|
||||
* flag < 0: Line is executable but was not executed.
|
||||
* flag > 0: Line was executed.
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function getCodeCoverageInformation() {
|
||||
return $this->codeCoverageInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs a TestCase.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function run(PHPUnit2_Framework_Test $test) {
|
||||
$this->startTest($test);
|
||||
|
||||
set_error_handler('PHPUnit2_Util_ErrorHandler', E_USER_ERROR);
|
||||
|
||||
$useXdebug = (extension_loaded('xdebug') && $this->collectCodeCoverageInformation);
|
||||
|
||||
if ($useXdebug) {
|
||||
xdebug_start_code_coverage(XDEBUG_CC_UNUSED);
|
||||
}
|
||||
|
||||
$globalsBackup = $GLOBALS;
|
||||
|
||||
try {
|
||||
$test->runBare();
|
||||
}
|
||||
|
||||
catch (PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
$this->addFailure($test, $e);
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
$this->addError($test, $e);
|
||||
}
|
||||
|
||||
$GLOBALS = $globalsBackup;
|
||||
|
||||
if ($useXdebug) {
|
||||
$this->codeCoverageInformation[$test->getName()] = PHPUnit2_Util_Filter::getFilteredCodeCoverage(
|
||||
xdebug_get_code_coverage()
|
||||
);
|
||||
|
||||
xdebug_stop_code_coverage();
|
||||
}
|
||||
|
||||
restore_error_handler();
|
||||
|
||||
$this->endTest($test);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of run tests.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function runCount() {
|
||||
return $this->runTests;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the test run should stop.
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
public function shouldStop() {
|
||||
return $this->stop;
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks that the test run should stop.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function stop() {
|
||||
$this->stop = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the entire test was successful or not.
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
public function wasSuccessful() {
|
||||
return empty($this->errors) && empty($this->failures);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
554
database/php/pear/PHPUnit2/Framework/TestSuite.php
Normal file
554
database/php/pear/PHPUnit2/Framework/TestSuite.php
Normal file
@@ -0,0 +1,554 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestSuite.php,v 1.26.2.11 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/Test.php';
|
||||
require_once 'PHPUnit2/Framework/TestCase.php';
|
||||
require_once 'PHPUnit2/Framework/TestResult.php';
|
||||
require_once 'PHPUnit2/Runner/BaseTestRunner.php';
|
||||
require_once 'PHPUnit2/Util/Fileloader.php';
|
||||
|
||||
/**
|
||||
* A TestSuite is a composite of Tests. It runs a collection of test cases.
|
||||
*
|
||||
* Here is an example using the dynamic test definition.
|
||||
*
|
||||
* <code>
|
||||
* <?php
|
||||
* $suite = new PHPUnit2_Framework_TestSuite;
|
||||
* $suite->addTest(new MathTest('testPass'));
|
||||
* ?>
|
||||
* </code>
|
||||
*
|
||||
* Alternatively, a TestSuite can extract the tests to be run automatically.
|
||||
* To do so you pass a ReflectionClass instance for your
|
||||
* PHPUnit2_Framework_TestCase class to the PHPUnit2_Framework_TestSuite
|
||||
* constructor.
|
||||
*
|
||||
* <code>
|
||||
* <?php
|
||||
* $suite = new PHPUnit2_Framework_TestSuite(
|
||||
* new ReflectionClass('MathTest')
|
||||
* );
|
||||
* ?>
|
||||
* </code>
|
||||
*
|
||||
* This constructor creates a suite with all the methods starting with
|
||||
* "test" that take no arguments.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_TestSuite implements PHPUnit2_Framework_Test {
|
||||
/**
|
||||
* The name of the test suite.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
private $name = '';
|
||||
|
||||
/**
|
||||
* The tests in the test suite.
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
private $tests = array();
|
||||
|
||||
/**
|
||||
* Constructs a new TestSuite:
|
||||
*
|
||||
* - PHPUnit2_Framework_TestSuite() constructs an empty TestSuite.
|
||||
*
|
||||
* - PHPUnit2_Framework_TestSuite(ReflectionClass) constructs a
|
||||
* TestSuite from the given class.
|
||||
*
|
||||
* - PHPUnit2_Framework_TestSuite(ReflectionClass, String)
|
||||
* constructs a TestSuite from the given class with the given
|
||||
* name.
|
||||
*
|
||||
* - PHPUnit2_Framework_TestSuite(String) either constructs a
|
||||
* TestSuite from the given class (if the passed string is the
|
||||
* name of an existing class) or constructs an empty TestSuite
|
||||
* with the given name.
|
||||
*
|
||||
* @param mixed $theClass
|
||||
* @param string $name
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($theClass = '', $name = '') {
|
||||
$argumentsValid = FALSE;
|
||||
|
||||
if (is_object($theClass) &&
|
||||
$theClass instanceof ReflectionClass) {
|
||||
$argumentsValid = TRUE;
|
||||
}
|
||||
|
||||
else if (is_string($theClass) && $theClass !== '' && class_exists($theClass)) {
|
||||
$argumentsValid = TRUE;
|
||||
|
||||
if ($name == '') {
|
||||
$name = $theClass;
|
||||
}
|
||||
|
||||
$theClass = new ReflectionClass($theClass);
|
||||
}
|
||||
|
||||
else if (is_string($theClass)) {
|
||||
$this->setName($theClass);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$argumentsValid) {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
if ($name != '') {
|
||||
$this->setName($name);
|
||||
} else {
|
||||
$this->setName($theClass->getName());
|
||||
}
|
||||
|
||||
$constructor = $theClass->getConstructor();
|
||||
|
||||
if ($constructor === NULL ||
|
||||
!$constructor->isPublic()) {
|
||||
$this->addTest(
|
||||
self::warning(
|
||||
sprintf(
|
||||
'Class %s has no public constructor',
|
||||
|
||||
$theClass->getName()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$methods = $theClass->getMethods();
|
||||
$names = array();
|
||||
|
||||
foreach ($methods as $method) {
|
||||
$this->addTestMethod($method, $names, $theClass);
|
||||
}
|
||||
|
||||
if (empty($this->tests)) {
|
||||
$this->addTest(
|
||||
self::warning(
|
||||
sprintf(
|
||||
'No tests found in %s',
|
||||
|
||||
$theClass->getName()
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of the test suite.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function toString() {
|
||||
return $this->getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a test to the suite.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function addTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->tests[] = $test;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the tests from the given class to the suite.
|
||||
*
|
||||
* @param mixed $testClass
|
||||
* @access public
|
||||
*/
|
||||
public function addTestSuite($testClass) {
|
||||
if (is_string($testClass) &&
|
||||
class_exists($testClass)) {
|
||||
$testClass = new ReflectionClass($testClass);
|
||||
}
|
||||
|
||||
if (is_object($testClass) &&
|
||||
$testClass instanceof ReflectionClass) {
|
||||
$this->addTest(new PHPUnit2_Framework_TestSuite($testClass));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps both <code>addTest()</code> and <code>addTestSuite</code>
|
||||
* as well as the separate import statements for the user's convenience.
|
||||
*
|
||||
* If the named file cannot be read or there are no new tests that can be
|
||||
* added, a <code>PHPUnit2_Framework_Warning</code> will be created instead,
|
||||
* leaving the current test run untouched.
|
||||
*
|
||||
* @param string $filename
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @since Method available since Release 2.3.0
|
||||
* @author Stefano F. Rausch <stefano@rausch-e.net>
|
||||
*/
|
||||
public function addTestFile($filename) {
|
||||
if (!is_string($filename) || !file_exists($filename)) {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
$declaredClasses = get_declared_classes();
|
||||
|
||||
PHPUnit2_Util_Fileloader::checkAndLoad($filename);
|
||||
|
||||
$newClasses = array_values(
|
||||
array_diff(get_declared_classes(), $declaredClasses)
|
||||
);
|
||||
|
||||
$testsFound = 0;
|
||||
|
||||
foreach ($newClasses as $class) {
|
||||
if (preg_match('"Tests?$"', $class)) {
|
||||
try {
|
||||
$suiteMethod = new ReflectionMethod(
|
||||
$class, PHPUnit2_Runner_BaseTestRunner::SUITE_METHODNAME
|
||||
);
|
||||
|
||||
$this->addTest($suiteMethod->invoke(NULL));
|
||||
} catch (ReflectionException $e) {
|
||||
$this->addTestSuite(new ReflectionClass($class));
|
||||
}
|
||||
|
||||
$testsFound++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($testsFound == 0) {
|
||||
$this->addTest(
|
||||
new PHPUnit2_Framework_Warning('No tests found in file ' . $filename)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for addTestFile() that adds multiple test files.
|
||||
*
|
||||
* @param Array $filenames
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
public function addTestFiles($filenames) {
|
||||
foreach ($filenames as $filename) {
|
||||
$this->addTestFile($filename);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Counts the number of test cases that will be run by this test.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function countTestCases() {
|
||||
$count = 0;
|
||||
|
||||
foreach ($this->tests as $test) {
|
||||
$count += $test->countTestCases();
|
||||
}
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ReflectionClass $theClass
|
||||
* @param string $name
|
||||
* @return PHPUnit2_Framework_Test
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function createTest(ReflectionClass $theClass, $name) {
|
||||
if (!$theClass->isInstantiable()) {
|
||||
return self::warning(
|
||||
sprintf(
|
||||
'Cannot instantiate test case %s.',
|
||||
$theClass->getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$constructor = $theClass->getConstructor();
|
||||
|
||||
if ($constructor !== NULL) {
|
||||
$parameters = $constructor->getParameters();
|
||||
|
||||
if (sizeof($parameters) == 0) {
|
||||
$test = $theClass->newInstance();
|
||||
|
||||
if ($test instanceof PHPUnit2_Framework_TestCase) {
|
||||
$test->setName($name);
|
||||
}
|
||||
}
|
||||
|
||||
else if (sizeof($parameters) == 1 &&
|
||||
$parameters[0]->getClass() === NULL) {
|
||||
$test = $theClass->newInstance($name);
|
||||
}
|
||||
|
||||
else {
|
||||
return self::warning(
|
||||
sprintf(
|
||||
'Constructor of class %s is not TestCase($name) or TestCase().',
|
||||
$theClass->getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $test;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a default TestResult object.
|
||||
*
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @access protected
|
||||
*/
|
||||
protected function createResult() {
|
||||
return new PHPUnit2_Framework_TestResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the suite.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the tests and collects their result in a TestResult.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function run($result = NULL) {
|
||||
if ($result === NULL) {
|
||||
$result = $this->createResult();
|
||||
}
|
||||
|
||||
// XXX: Workaround for missing ability to declare type-hinted parameters as optional.
|
||||
else if (!($result instanceof PHPUnit2_Framework_TestResult)) {
|
||||
throw new Exception(
|
||||
'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.'
|
||||
);
|
||||
}
|
||||
|
||||
$result->startTestSuite($this);
|
||||
|
||||
foreach ($this->tests as $test) {
|
||||
if ($result->shouldStop()) {
|
||||
break;
|
||||
}
|
||||
|
||||
$this->runTest($test, $result);
|
||||
}
|
||||
|
||||
$result->endTestSuite($this);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs a test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_TestResult $testResult
|
||||
* @access public
|
||||
*/
|
||||
public function runTest(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_TestResult $result) {
|
||||
$test->run($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of the suite.
|
||||
*
|
||||
* @param string
|
||||
* @access public
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the test at the given index.
|
||||
*
|
||||
* @param integer
|
||||
* @return PHPUnit2_Framework_Test
|
||||
* @access public
|
||||
*/
|
||||
public function testAt($index) {
|
||||
if (isset($this->tests[$index])) {
|
||||
return $this->tests[$index];
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of tests in this suite.
|
||||
*
|
||||
* @return integer
|
||||
* @access public
|
||||
*/
|
||||
public function testCount() {
|
||||
return sizeof($this->tests);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the tests as an enumeration.
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function tests() {
|
||||
return $this->tests;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ReflectionMethod $method
|
||||
* @param array $names
|
||||
* @param ReflectionClass $theClass
|
||||
* @access private
|
||||
*/
|
||||
private function addTestMethod(ReflectionMethod $method, &$names, ReflectionClass $theClass) {
|
||||
$name = $method->getName();
|
||||
|
||||
if (in_array($name, $names)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($this->isPublicTestMethod($method)) {
|
||||
$names[] = $name;
|
||||
|
||||
$this->addTest(
|
||||
self::createTest(
|
||||
$theClass,
|
||||
$name
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
else if ($this->isTestMethod($method)) {
|
||||
$this->addTest(
|
||||
self::warning(
|
||||
sprintf(
|
||||
'Test method is not public: %s',
|
||||
|
||||
$name
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ReflectionMethod $method
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
private function isPublicTestMethod(ReflectionMethod $method) {
|
||||
return ($this->isTestMethod($method) &&
|
||||
$method->isPublic());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ReflectionMethod $method
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
private function isTestMethod(ReflectionMethod $method) {
|
||||
return (substr($method->name, 0, 4) == 'test');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $message
|
||||
* @return PHPUnit2_Framework_Warning
|
||||
* @access private
|
||||
*/
|
||||
private static function warning($message) {
|
||||
require_once 'PHPUnit2/Framework/Warning.php';
|
||||
return new PHPUnit2_Framework_Warning($message);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
94
database/php/pear/PHPUnit2/Framework/Warning.php
Normal file
94
database/php/pear/PHPUnit2/Framework/Warning.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Warning.php,v 1.11.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestCase.php';
|
||||
|
||||
/**
|
||||
* A warning.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Framework_Warning extends PHPUnit2_Framework_TestCase {
|
||||
/**
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
private $message = '';
|
||||
|
||||
/**
|
||||
* @param string $message
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($message = '') {
|
||||
$this->message = $message;
|
||||
parent::__construct('Warning');
|
||||
}
|
||||
|
||||
/**
|
||||
* @access protected
|
||||
*/
|
||||
protected function runTest() {
|
||||
$this->fail($this->message);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
283
database/php/pear/PHPUnit2/Runner/BaseTestRunner.php
Normal file
283
database/php/pear/PHPUnit2/Runner/BaseTestRunner.php
Normal file
@@ -0,0 +1,283 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: BaseTestRunner.php,v 1.18.2.3 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/AssertionFailedError.php';
|
||||
require_once 'PHPUnit2/Framework/TestListener.php';
|
||||
require_once 'PHPUnit2/Runner/StandardTestSuiteLoader.php';
|
||||
|
||||
/**
|
||||
* Base class for all test runners.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
* @abstract
|
||||
*/
|
||||
abstract class PHPUnit2_Runner_BaseTestRunner implements PHPUnit2_Framework_TestListener {
|
||||
const STATUS_ERROR = 1;
|
||||
const STATUS_FAILURE = 2;
|
||||
const STATUS_INCOMPLETE = 3;
|
||||
const SUITE_METHODNAME = 'suite';
|
||||
|
||||
/**
|
||||
* An error occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->testFailed(self::STATUS_ERROR, $test, $e);
|
||||
}
|
||||
|
||||
/**
|
||||
* A failure occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
$this->testFailed(self::STATUS_FAILURE, $test, $e);
|
||||
}
|
||||
|
||||
/**
|
||||
* Incomplete test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->testFailed(self::STATUS_INCOMPLETE, $test, $e);
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->testStarted($test->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->testEnded($test->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the loader to be used.
|
||||
*
|
||||
* @return PHPUnit2_Runner_TestSuiteLoader
|
||||
* @access public
|
||||
*/
|
||||
public function getLoader() {
|
||||
return new PHPUnit2_Runner_StandardTestSuiteLoader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Test corresponding to the given suite.
|
||||
* This is a template method, subclasses override
|
||||
* the runFailed() and clearStatus() methods.
|
||||
*
|
||||
* @param string $suiteClassName
|
||||
* @param string $suiteClassFile
|
||||
* @return PHPUnit2_Framework_Test
|
||||
* @access public
|
||||
*/
|
||||
public function getTest($suiteClassName, $suiteClassFile = '') {
|
||||
if ($suiteClassFile == $suiteClassName . '.php') {
|
||||
$suiteClassFile = '';
|
||||
}
|
||||
|
||||
try {
|
||||
$testClass = $this->loadSuiteClass($suiteClassName, $suiteClassFile);
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
$this->runFailed($e->getMessage());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
try {
|
||||
$suiteMethod = $testClass->getMethod(self::SUITE_METHODNAME);
|
||||
|
||||
if (!$suiteMethod->isStatic()) {
|
||||
$this->runFailed(
|
||||
'suite() method must be static.'
|
||||
);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
try {
|
||||
$test = $suiteMethod->invoke(NULL);
|
||||
}
|
||||
|
||||
catch (ReflectionException $e) {
|
||||
$this->runFailed(
|
||||
sprintf(
|
||||
"Failed to invoke suite() method.\n%s",
|
||||
|
||||
$e->getMessage()
|
||||
)
|
||||
);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
catch (ReflectionException $e) {
|
||||
$test = new PHPUnit2_Framework_TestSuite($testClass);
|
||||
}
|
||||
|
||||
$this->clearStatus();
|
||||
|
||||
return $test;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override to define how to handle a failed loading of
|
||||
* a test suite.
|
||||
*
|
||||
* @param string $message
|
||||
* @access protected
|
||||
* @abstract
|
||||
*/
|
||||
protected abstract function runFailed($message);
|
||||
|
||||
/**
|
||||
* Returns the loaded ReflectionClass for a suite name.
|
||||
*
|
||||
* @param string $suiteClassName
|
||||
* @param string $suiteClassFile
|
||||
* @return ReflectionClass
|
||||
* @access protected
|
||||
*/
|
||||
protected function loadSuiteClass($suiteClassName, $suiteClassFile = '') {
|
||||
return $this->getLoader()->load($suiteClassName, $suiteClassFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the status message.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function clearStatus() {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param string $testName
|
||||
* @access public
|
||||
* @abstract
|
||||
*/
|
||||
public abstract function testStarted($testName);
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param string $testName
|
||||
* @access public
|
||||
* @abstract
|
||||
*/
|
||||
public abstract function testEnded($testName);
|
||||
|
||||
/**
|
||||
* A test failed.
|
||||
*
|
||||
* @param integer $status
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
* @abstract
|
||||
*/
|
||||
public abstract function testFailed($status, PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e);
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
184
database/php/pear/PHPUnit2/Runner/IncludePathTestCollector.php
Normal file
184
database/php/pear/PHPUnit2/Runner/IncludePathTestCollector.php
Normal file
@@ -0,0 +1,184 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: IncludePathTestCollector.php,v 1.13.2.5 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.1.0
|
||||
*/
|
||||
|
||||
if (!class_exists('AppendIterator')) {
|
||||
class AppendIterator implements Iterator {
|
||||
private $iterators;
|
||||
|
||||
public function __construct() {
|
||||
$this->iterators = new ArrayIterator();
|
||||
}
|
||||
|
||||
public function __call($func, $params) {
|
||||
return call_user_func_array(array($this->getInnerIterator(), $func), $params);
|
||||
}
|
||||
|
||||
public function append(Iterator $it) {
|
||||
$this->iterators->append($it);
|
||||
}
|
||||
|
||||
public function getInnerIterator() {
|
||||
return $this->iterators->current();
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
$this->iterators->rewind();
|
||||
|
||||
if ($this->iterators->valid()) {
|
||||
$this->getInnerIterator()->rewind();
|
||||
}
|
||||
}
|
||||
|
||||
public function valid() {
|
||||
return $this->iterators->valid() && $this->getInnerIterator()->valid();
|
||||
}
|
||||
|
||||
public function current() {
|
||||
return $this->iterators->valid() ? $this->getInnerIterator()->current() : NULL;
|
||||
}
|
||||
|
||||
public function key() {
|
||||
return $this->iterators->valid() ? $this->getInnerIterator()->key() : NULL;
|
||||
}
|
||||
|
||||
public function next() {
|
||||
if (!$this->iterators->valid()) return;
|
||||
$this->getInnerIterator()->next();
|
||||
|
||||
if ($this->getInnerIterator()->valid()) return;
|
||||
$this->iterators->next();
|
||||
|
||||
while ($this->iterators->valid()) {
|
||||
$this->getInnerIterator()->rewind();
|
||||
|
||||
if ($this->getInnerIterator()->valid()) return;
|
||||
$this->iterators->next();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
require_once 'PHPUnit2/Runner/TestCollector.php';
|
||||
|
||||
require_once 'PEAR/Config.php';
|
||||
|
||||
/**
|
||||
* An implementation of a TestCollector that consults the
|
||||
* include path set in the php.ini.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
|
||||
class PHPUnit2_Runner_IncludePathTestCollector implements PHPUnit2_Runner_TestCollector {
|
||||
/**
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function collectTests() {
|
||||
$config = new PEAR_Config;
|
||||
$iterator = new AppendIterator;
|
||||
$result = array();
|
||||
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||
$delimiter = ';';
|
||||
} else {
|
||||
$delimiter = ':';
|
||||
}
|
||||
|
||||
$paths = explode($delimiter, ini_get('include_path'));
|
||||
$paths[] = $config->get('test_dir');
|
||||
|
||||
foreach ($paths as $path) {
|
||||
$iterator->append(
|
||||
new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($path)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
foreach ($iterator as $path => $file) {
|
||||
if ($this->isTestClass($file)) {
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||
$path = str_replace('/', '\\', $path);
|
||||
}
|
||||
|
||||
$result[] = $path;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Considers a file to contain a test class when it contains the
|
||||
* pattern "Test" in its name and its name ends with ".php".
|
||||
*
|
||||
* @param string $classFileName
|
||||
* @return boolean
|
||||
* @access protected
|
||||
*/
|
||||
protected function isTestClass($classFileName) {
|
||||
return (strpos($classFileName, 'Test') !== FALSE && substr($classFileName, -4) == '.php') ? TRUE : FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
129
database/php/pear/PHPUnit2/Runner/StandardTestSuiteLoader.php
Normal file
129
database/php/pear/PHPUnit2/Runner/StandardTestSuiteLoader.php
Normal file
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: StandardTestSuiteLoader.php,v 1.19.2.8 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Runner/TestSuiteLoader.php';
|
||||
require_once 'PHPUnit2/Util/Fileloader.php';
|
||||
|
||||
require_once 'PEAR/Config.php';
|
||||
|
||||
/**
|
||||
* The standard test suite loader.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Runner_StandardTestSuiteLoader implements PHPUnit2_Runner_TestSuiteLoader {
|
||||
/**
|
||||
* @param string $suiteClassName
|
||||
* @param string $suiteClassFile
|
||||
* @return ReflectionClass
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function load($suiteClassName, $suiteClassFile = '') {
|
||||
$suiteClassName = str_replace('.php', '', $suiteClassName);
|
||||
$suiteClassFile = !empty($suiteClassFile) ? $suiteClassFile : str_replace('_', '/', $suiteClassName) . '.php';
|
||||
|
||||
if (!class_exists($suiteClassName)) {
|
||||
if(!file_exists($suiteClassFile)) {
|
||||
$config = new PEAR_Config;
|
||||
|
||||
$includePaths = explode(PATH_SEPARATOR, get_include_path());
|
||||
$includePaths[] = $config->get('test_dir');
|
||||
|
||||
foreach ($includePaths as $includePath) {
|
||||
$file = $includePath . DIRECTORY_SEPARATOR . $suiteClassFile;
|
||||
|
||||
if (file_exists($file)) {
|
||||
$suiteClassFile = $file;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PHPUnit2_Util_Fileloader::checkAndLoad($suiteClassFile);
|
||||
}
|
||||
|
||||
if (class_exists($suiteClassName)) {
|
||||
return new ReflectionClass($suiteClassName);
|
||||
} else {
|
||||
throw new Exception(
|
||||
sprintf(
|
||||
'Class %s could not be found in %s.',
|
||||
|
||||
$suiteClassName,
|
||||
$suiteClassFile
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ReflectionClass $aClass
|
||||
* @return ReflectionClass
|
||||
* @access public
|
||||
*/
|
||||
public function reload(ReflectionClass $aClass) {
|
||||
return $aClass;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
77
database/php/pear/PHPUnit2/Runner/TestCollector.php
Normal file
77
database/php/pear/PHPUnit2/Runner/TestCollector.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestCollector.php,v 1.7.2.2 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Collects Test class names to be presented
|
||||
* by the TestSelector.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Interface available since Release 2.0.0
|
||||
*/
|
||||
interface PHPUnit2_Runner_TestCollector {
|
||||
/**
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
public function collectTests();
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
85
database/php/pear/PHPUnit2/Runner/TestSuiteLoader.php
Normal file
85
database/php/pear/PHPUnit2/Runner/TestSuiteLoader.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestSuiteLoader.php,v 1.11.2.2 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* An interface to define how a test suite should be loaded.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Interface available since Release 2.0.0
|
||||
*/
|
||||
interface PHPUnit2_Runner_TestSuiteLoader {
|
||||
/**
|
||||
* @param string $suiteClassName
|
||||
* @param string $suiteClassFile
|
||||
* @return ReflectionClass
|
||||
* @access public
|
||||
*/
|
||||
public function load($suiteClassName, $suiteClassFile = '');
|
||||
|
||||
/**
|
||||
* @param ReflectionClass $aClass
|
||||
* @return ReflectionClass
|
||||
* @access public
|
||||
*/
|
||||
public function reload(ReflectionClass $aClass);
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
90
database/php/pear/PHPUnit2/Runner/Version.php
Normal file
90
database/php/pear/PHPUnit2/Runner/Version.php
Normal file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Version.php,v 1.7.2.2 2005/12/17 16:04:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* This class defines the current version of PHPUnit.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Runner_Version {
|
||||
/**
|
||||
* Returns the current version of PHPUnit.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function id() {
|
||||
return '2.3.6';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function getVersionString() {
|
||||
return 'PHPUnit 2.3.6 by Sebastian Bergmann.';
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
356
database/php/pear/PHPUnit2/TextUI/ResultPrinter.php
Normal file
356
database/php/pear/PHPUnit2/TextUI/ResultPrinter.php
Normal file
@@ -0,0 +1,356 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: ResultPrinter.php,v 1.20.2.5 2005/12/17 16:04:57 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestListener.php';
|
||||
require_once 'PHPUnit2/Framework/TestFailure.php';
|
||||
require_once 'PHPUnit2/Util/Filter.php';
|
||||
require_once 'PHPUnit2/Util/Printer.php';
|
||||
|
||||
/**
|
||||
* Prints the result of a TextUI TestRunner run.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_TextUI_ResultPrinter extends PHPUnit2_Util_Printer implements PHPUnit2_Framework_TestListener {
|
||||
/**
|
||||
* @var integer
|
||||
* @access private
|
||||
*/
|
||||
private $column = 0;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @access private
|
||||
*/
|
||||
private $lastTestFailed = FALSE;
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @param float $runTime
|
||||
* @access public
|
||||
*/
|
||||
public function printResult(PHPUnit2_Framework_TestResult $result, $timeElapsed) {
|
||||
$this->printHeader($timeElapsed);
|
||||
$this->printErrors($result);
|
||||
$this->printFailures($result);
|
||||
$this->printIncompletes($result);
|
||||
$this->printFooter($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $defects
|
||||
* @param integer $count
|
||||
* @param string $type
|
||||
* @access protected
|
||||
*/
|
||||
protected function printDefects($defects, $count, $type) {
|
||||
if ($count == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->write(
|
||||
sprintf(
|
||||
"There %s %d %s%s:\n",
|
||||
|
||||
($count == 1) ? 'was' : 'were',
|
||||
$count,
|
||||
$type,
|
||||
($count == 1) ? '' : 's'
|
||||
)
|
||||
);
|
||||
|
||||
$i = 1;
|
||||
|
||||
foreach ($defects as $defect) {
|
||||
$this->printDefect($defect, $i++);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestFailure $defect
|
||||
* @param integer $count
|
||||
* @access protected
|
||||
*/
|
||||
protected function printDefect(PHPUnit2_Framework_TestFailure $defect, $count) {
|
||||
$this->printDefectHeader($defect, $count);
|
||||
$this->printDefectTrace($defect);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestFailure $defect
|
||||
* @param integer $count
|
||||
* @access protected
|
||||
*/
|
||||
protected function printDefectHeader(PHPUnit2_Framework_TestFailure $defect, $count) {
|
||||
$this->write(
|
||||
sprintf(
|
||||
"%d) %s\n",
|
||||
|
||||
$count,
|
||||
$defect->failedTest()->toString()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestFailure $defect
|
||||
* @access protected
|
||||
*/
|
||||
protected function printDefectTrace(PHPUnit2_Framework_TestFailure $defect) {
|
||||
$e = $defect->thrownException();
|
||||
$message = method_exists($e, 'toString') ? $e->toString() : $e->getMessage();
|
||||
|
||||
$this->write($message . "\n");
|
||||
|
||||
$this->write(
|
||||
PHPUnit2_Util_Filter::getFilteredStacktrace(
|
||||
$defect->thrownException()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @access protected
|
||||
*/
|
||||
protected function printErrors(PHPUnit2_Framework_TestResult $result) {
|
||||
$this->printDefects($result->errors(), $result->errorCount(), 'error');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @access protected
|
||||
*/
|
||||
protected function printFailures(PHPUnit2_Framework_TestResult $result) {
|
||||
$this->printDefects($result->failures(), $result->failureCount(), 'failure');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @access protected
|
||||
*/
|
||||
protected function printIncompletes(PHPUnit2_Framework_TestResult $result) {
|
||||
$this->printDefects($result->notImplemented(), $result->notImplementedCount(), 'incomplete test case');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param float $timeElapsed
|
||||
* @access protected
|
||||
*/
|
||||
protected function printHeader($timeElapsed) {
|
||||
$this->write(
|
||||
sprintf(
|
||||
"\n\nTime: %s\n",
|
||||
|
||||
$timeElapsed
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @access protected
|
||||
*/
|
||||
protected function printFooter(PHPUnit2_Framework_TestResult $result) {
|
||||
if ($result->allCompletlyImplemented() &&
|
||||
$result->wasSuccessful()) {
|
||||
$this->write(
|
||||
sprintf(
|
||||
"\nOK (%d test%s)\n",
|
||||
|
||||
$result->runCount(),
|
||||
($result->runCount() == 1) ? '' : 's'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
else if (!$result->allCompletlyImplemented() &&
|
||||
$result->wasSuccessful()) {
|
||||
$this->write(
|
||||
sprintf(
|
||||
"\nOK, but incomplete test cases!!!\nTests run: %d, Incomplete Tests: %d.\n",
|
||||
|
||||
$result->runCount(),
|
||||
$result->notImplementedCount()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
else {
|
||||
$this->write(
|
||||
sprintf(
|
||||
"\nFAILURES!!!\nTests run: %d, Failures: %d, Errors: %d, Incomplete Tests: %d.\n",
|
||||
|
||||
$result->runCount(),
|
||||
$result->failureCount(),
|
||||
$result->errorCount(),
|
||||
$result->notImplementedCount()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @access public
|
||||
*/
|
||||
public function printWaitPrompt() {
|
||||
$this->write("\n<RETURN> to continue\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* An error occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->write('E');
|
||||
$this->nextColumn();
|
||||
|
||||
$this->lastTestFailed = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* A failure occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
$this->write('F');
|
||||
$this->nextColumn();
|
||||
|
||||
$this->lastTestFailed = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Incomplete test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->write('I');
|
||||
$this->nextColumn();
|
||||
|
||||
$this->lastTestFailed = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test) {
|
||||
if (!$this->lastTestFailed) {
|
||||
$this->write('.');
|
||||
$this->nextColumn();
|
||||
}
|
||||
|
||||
$this->lastTestFailed = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @access protected
|
||||
*/
|
||||
protected function nextColumn() {
|
||||
if ($this->column++ >= 40) {
|
||||
$this->column = 0;
|
||||
$this->write("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
622
database/php/pear/PHPUnit2/TextUI/TestRunner.php
Normal file
622
database/php/pear/PHPUnit2/TextUI/TestRunner.php
Normal file
@@ -0,0 +1,622 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: TestRunner.php,v 1.64.2.5 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
if (!defined('PHPUnit2_MAIN_METHOD')) {
|
||||
define('PHPUnit2_MAIN_METHOD', 'PHPUnit2_TextUI_TestRunner::main');
|
||||
}
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestSuite.php';
|
||||
require_once 'PHPUnit2/Runner/Version.php';
|
||||
require_once 'PHPUnit2/Runner/BaseTestRunner.php';
|
||||
require_once 'PHPUnit2/TextUI/ResultPrinter.php';
|
||||
require_once 'PHPUnit2/Util/Fileloader.php';
|
||||
|
||||
require_once 'Console/Getopt.php';
|
||||
require_once 'Benchmark/Timer.php';
|
||||
|
||||
/**
|
||||
* A TestRunner for the Command Line Interface (CLI)
|
||||
* PHP SAPI Module.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_TextUI_TestRunner extends PHPUnit2_Runner_BaseTestRunner {
|
||||
const SUCCESS_EXIT = 0;
|
||||
const FAILURE_EXIT = 1;
|
||||
const EXCEPTION_EXIT = 2;
|
||||
|
||||
/**
|
||||
* @var PHPUnit2_Runner_TestSuiteLoader
|
||||
* @access private
|
||||
*/
|
||||
private $loader = NULL;
|
||||
|
||||
/**
|
||||
* @var PHPUnit2_TextUI_ResultPrinter
|
||||
* @access private
|
||||
*/
|
||||
private $printer = NULL;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static $versionStringPrinted = FALSE;
|
||||
|
||||
/**
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function main() {
|
||||
$aTestRunner = new PHPUnit2_TextUI_TestRunner;
|
||||
|
||||
try {
|
||||
$result = $aTestRunner->start($_SERVER['argv']);
|
||||
|
||||
if (!$result->wasSuccessful()) {
|
||||
exit(self::FAILURE_EXIT);
|
||||
}
|
||||
|
||||
exit(self::SUCCESS_EXIT);
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
self::printVersionString();
|
||||
print $e->getMessage();
|
||||
exit(self::EXCEPTION_EXIT);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $arguments
|
||||
* @throws Exception
|
||||
* @access protected
|
||||
*/
|
||||
protected function start($arguments) {
|
||||
$coverageDataFile = FALSE;
|
||||
$coverageHTMLFile = FALSE;
|
||||
$coverageTextFile = FALSE;
|
||||
$testdoxHTMLFile = FALSE;
|
||||
$testdoxTextFile = FALSE;
|
||||
$xmlLogfile = FALSE;
|
||||
$wait = FALSE;
|
||||
|
||||
$possibleOptions = array(
|
||||
'help',
|
||||
'loader=',
|
||||
'log-xml=',
|
||||
'skeleton',
|
||||
'testdox-html=',
|
||||
'testdox-text=',
|
||||
'version',
|
||||
'wait'
|
||||
);
|
||||
|
||||
if (extension_loaded('xdebug')) {
|
||||
$possibleOptions[] = 'coverage-data=';
|
||||
$possibleOptions[] = 'coverage-html=';
|
||||
$possibleOptions[] = 'coverage-text=';
|
||||
}
|
||||
|
||||
$options = Console_Getopt::getopt(
|
||||
$arguments,
|
||||
'',
|
||||
$possibleOptions
|
||||
);
|
||||
|
||||
if (PEAR::isError($options)) {
|
||||
$this->showError($options->getMessage());
|
||||
}
|
||||
|
||||
$test = isset($options[1][0]) ? $options[1][0] : FALSE;
|
||||
$testFile = isset($options[1][1]) ? $options[1][1] : $test . '.php';
|
||||
|
||||
foreach ($options[0] as $option) {
|
||||
switch ($option[0]) {
|
||||
case '--coverage-data': {
|
||||
$coverageDataFile = $option[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case '--coverage-html': {
|
||||
$coverageHTMLFile = $option[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case '--coverage-text': {
|
||||
$coverageTextFile = $option[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case '--help': {
|
||||
$this->showHelp();
|
||||
exit(self::SUCCESS_EXIT);
|
||||
}
|
||||
break;
|
||||
|
||||
case '--testdox-html': {
|
||||
$testdoxHTMLFile = $option[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case '--testdox-text': {
|
||||
$testdoxTextFile = $option[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case '--loader': {
|
||||
if (!class_exists($option[1])) {
|
||||
PHPUnit2_Util_Fileloader::checkAndLoad(
|
||||
str_replace('_', '/', $option[1]) . '.php'
|
||||
);
|
||||
}
|
||||
|
||||
if (class_exists($option[1])) {
|
||||
$class = new ReflectionClass($option[1]);
|
||||
|
||||
if ($class->implementsInterface('PHPUnit2_Runner_TestSuiteLoader') &&
|
||||
$class->isInstantiable()) {
|
||||
$this->loader = $class->newInstance();
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->loader === NULL) {
|
||||
$this->showError(
|
||||
sprintf(
|
||||
'Could not use "%s" as loader.',
|
||||
|
||||
$option[1]
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case '--log-xml': {
|
||||
$xmlLogfile = $option[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case '--skeleton': {
|
||||
if ($test !== FALSE) {
|
||||
self::printVersionString();
|
||||
|
||||
try {
|
||||
require_once 'PHPUnit2/Util/Skeleton.php';
|
||||
|
||||
$skeleton = new PHPUnit2_Util_Skeleton($test, $testFile);
|
||||
$skeleton->write();
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
print $e->getMessage() . "\n";
|
||||
|
||||
printf(
|
||||
"Could not write test class skeleton for %s to %s.\n",
|
||||
$test,
|
||||
$test . 'Test.php'
|
||||
);
|
||||
|
||||
exit(self::FAILURE_EXIT);
|
||||
}
|
||||
|
||||
printf(
|
||||
"Wrote test class skeleton for %s to %s.\n",
|
||||
$test,
|
||||
$test . 'Test.php'
|
||||
);
|
||||
|
||||
exit(self::SUCCESS_EXIT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case '--version': {
|
||||
self::printVersionString();
|
||||
exit(self::SUCCESS_EXIT);
|
||||
}
|
||||
break;
|
||||
|
||||
case '--wait': {
|
||||
$wait = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($test === FALSE) {
|
||||
$this->showHelp();
|
||||
|
||||
exit(self::SUCCESS_EXIT);
|
||||
}
|
||||
|
||||
try {
|
||||
return $this->doRun(
|
||||
$this->getTest($test, $testFile),
|
||||
$coverageDataFile,
|
||||
$coverageHTMLFile,
|
||||
$coverageTextFile,
|
||||
$testdoxHTMLFile,
|
||||
$testdoxTextFile,
|
||||
$xmlLogfile,
|
||||
$wait
|
||||
);
|
||||
}
|
||||
|
||||
catch (Exception $e) {
|
||||
throw new Exception(
|
||||
'Could not create and run test suite: ' . $e->getMessage()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $test
|
||||
* @param mixed $coverageDataFile
|
||||
* @param mixed $testdoxHTMLFile
|
||||
* @param mixed $testdoxTextFile
|
||||
* @param mixed $xmlLogfile
|
||||
* @param boolean $wait
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function run($test, $coverageDataFile = FALSE, $coverageHTMLFile = FALSE, $coverageTextFile = FALSE, $testdoxHTMLFile = FALSE, $testdoxTextFile = FALSE, $xmlLogfile = FALSE, $wait = FALSE) {
|
||||
if ($test instanceof ReflectionClass) {
|
||||
$test = new PHPUnit2_Framework_TestSuite($test);
|
||||
}
|
||||
|
||||
if ($test instanceof PHPUnit2_Framework_Test) {
|
||||
$aTestRunner = new PHPUnit2_TextUI_TestRunner;
|
||||
|
||||
return $aTestRunner->doRun(
|
||||
$test,
|
||||
$coverageDataFile,
|
||||
$coverageHTMLFile,
|
||||
$coverageTextFile,
|
||||
$testdoxHTMLFile,
|
||||
$testdoxTextFile,
|
||||
$xmlLogfile,
|
||||
$wait
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs a single test and waits until the user types RETURN.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $suite
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function runAndWait(PHPUnit2_Framework_Test $suite) {
|
||||
$aTestRunner = new PHPUnit2_TextUI_TestRunner;
|
||||
|
||||
$aTestRunner->doRun(
|
||||
$suite,
|
||||
FALSE,
|
||||
FALSE,
|
||||
FALSE,
|
||||
FALSE,
|
||||
FALSE,
|
||||
FALSE,
|
||||
TRUE
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @access protected
|
||||
*/
|
||||
protected function createTestResult() {
|
||||
return new PHPUnit2_Framework_TestResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_Test $suite
|
||||
* @param mixed $coverageDataFile
|
||||
* @param mixed $coverageHTMLFile
|
||||
* @param mixed $coverageTextFile
|
||||
* @param mixed $testdoxHTMLFile
|
||||
* @param mixed $testdoxTextFile
|
||||
* @param mixed $xmlLogfile
|
||||
* @param boolean $wait
|
||||
* @return PHPUnit2_Framework_TestResult
|
||||
* @access public
|
||||
*/
|
||||
public function doRun(PHPUnit2_Framework_Test $suite, $coverageDataFile = FALSE, $coverageHTMLFile = FALSE, $coverageTextFile = FALSE, $testdoxHTMLFile = FALSE, $testdoxTextFile = FALSE, $xmlLogfile = FALSE, $wait = FALSE) {
|
||||
$result = $this->createTestResult();
|
||||
$timer = new Benchmark_Timer;
|
||||
|
||||
if ($this->printer === NULL) {
|
||||
$this->printer = new PHPUnit2_TextUI_ResultPrinter;
|
||||
}
|
||||
|
||||
$this->printer->write(
|
||||
PHPUnit2_Runner_Version::getVersionString() . "\n\n"
|
||||
);
|
||||
|
||||
$result->addListener($this->printer);
|
||||
|
||||
if ($testdoxHTMLFile !== FALSE || $testdoxTextFile !== FALSE) {
|
||||
require_once 'PHPUnit2/Util/TestDox/ResultPrinter.php';
|
||||
|
||||
if ($testdoxHTMLFile !== FALSE) {
|
||||
$result->addListener(
|
||||
PHPUnit2_Util_TestDox_ResultPrinter::factory(
|
||||
'HTML',
|
||||
$testdoxHTMLFile
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ($testdoxTextFile !== FALSE) {
|
||||
$result->addListener(
|
||||
PHPUnit2_Util_TestDox_ResultPrinter::factory(
|
||||
'Text',
|
||||
$testdoxTextFile
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($xmlLogfile !== FALSE) {
|
||||
require_once 'PHPUnit2/Util/Log/XML.php';
|
||||
|
||||
$result->addListener(
|
||||
new PHPUnit2_Util_Log_XML($xmlLogfile)
|
||||
);
|
||||
}
|
||||
|
||||
if ($coverageDataFile !== FALSE ||
|
||||
$coverageHTMLFile !== FALSE ||
|
||||
$coverageTextFile !== FALSE) {
|
||||
$result->collectCodeCoverageInformation(TRUE);
|
||||
}
|
||||
|
||||
$timer->start();
|
||||
$suite->run($result);
|
||||
$timer->stop();
|
||||
$timeElapsed = $timer->timeElapsed();
|
||||
|
||||
$this->pause($wait);
|
||||
|
||||
$this->printer->printResult($result, $timeElapsed);
|
||||
|
||||
$this->handleCodeCoverageInformation(
|
||||
$result,
|
||||
$coverageDataFile,
|
||||
$coverageHTMLFile,
|
||||
$coverageTextFile
|
||||
);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the loader to be used.
|
||||
*
|
||||
* @return PHPUnit2_Runner_TestSuiteLoader
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function getLoader() {
|
||||
if ($this->loader === NULL) {
|
||||
$this->loader = new PHPUnit2_Runner_StandardTestSuiteLoader;
|
||||
}
|
||||
|
||||
return $this->loader;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_Framework_TestResult $result
|
||||
* @param mixed $coverageDataFile
|
||||
* @param mixed $coverageHTMLFile
|
||||
* @param mixed $coverageTextFile
|
||||
* @access protected
|
||||
* @since Method available since Release 2.1.0
|
||||
*/
|
||||
protected function handleCodeCoverageInformation(PHPUnit2_Framework_TestResult $result, $coverageDataFile, $coverageHTMLFile, $coverageTextFile) {
|
||||
if ($coverageDataFile !== FALSE &&
|
||||
$fp = fopen($coverageDataFile, 'w')) {
|
||||
fputs($fp, serialize($result->getCodeCoverageInformation()));
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
if ($coverageHTMLFile !== FALSE || $coverageTextFile !== FALSE) {
|
||||
require_once 'PHPUnit2/Util/CodeCoverage/Renderer.php';
|
||||
|
||||
if ($coverageHTMLFile !== FALSE) {
|
||||
$renderer = PHPUnit2_Util_CodeCoverage_Renderer::factory(
|
||||
'HTML',
|
||||
$result->getCodeCoverageInformation()
|
||||
);
|
||||
|
||||
$renderer->renderToFile($coverageHTMLFile);
|
||||
}
|
||||
|
||||
if ($coverageTextFile !== FALSE) {
|
||||
$renderer = PHPUnit2_Util_CodeCoverage_Renderer::factory(
|
||||
'Text',
|
||||
$result->getCodeCoverageInformation()
|
||||
);
|
||||
|
||||
$renderer->renderToFile($coverageTextFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @access public
|
||||
*/
|
||||
public function showError($message) {
|
||||
self::printVersionString();
|
||||
print $message . "\n";
|
||||
|
||||
exit(self::FAILURE_EXIT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @access public
|
||||
*/
|
||||
public function showHelp() {
|
||||
self::printVersionString();
|
||||
print "Usage: phpunit [switches] UnitTest [UnitTest.php]\n";
|
||||
|
||||
if (extension_loaded('xdebug')) {
|
||||
print " --coverage-data <file> Write Code Coverage data in raw format to file.\n" .
|
||||
" --coverage-html <file> Write Code Coverage data in HTML format to file.\n" .
|
||||
" --coverage-text <file> Write Code Coverage data in text format to file.\n\n";
|
||||
}
|
||||
|
||||
print " --testdox-html <file> Write agile documentation in HTML format to file.\n" .
|
||||
" --testdox-text <file> Write agile documentation in Text format to file.\n" .
|
||||
" --log-xml <file> Log test progress in XML format to file.\n\n";
|
||||
|
||||
print " --loader <loader> TestSuiteLoader implementation to use.\n\n" .
|
||||
" --skeleton Generate skeleton UnitTest class for Unit in Unit.php.\n\n" .
|
||||
" --wait Waits for a keystroke after each test.\n\n" .
|
||||
" --help Prints this usage information.\n" .
|
||||
" --version Prints the version and exits.\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param boolean $wait
|
||||
* @access protected
|
||||
*/
|
||||
protected function pause($wait) {
|
||||
if (!$wait) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->printer->printWaitPrompt();
|
||||
|
||||
fgets(STDIN);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHPUnit2_TextUI_ResultPrinter $resultPrinter
|
||||
* @access public
|
||||
*/
|
||||
public function setPrinter(PHPUnit2_TextUI_ResultPrinter $resultPrinter) {
|
||||
$this->printer = $resultPrinter;
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param string $testName
|
||||
* @access public
|
||||
*/
|
||||
public function testStarted($testName) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param string $testName
|
||||
* @access public
|
||||
*/
|
||||
public function testEnded($testName) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test failed.
|
||||
*
|
||||
* @param integer $status
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function testFailed($status, PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Override to define how to handle a failed loading of
|
||||
* a test suite.
|
||||
*
|
||||
* @param string $message
|
||||
* @access protected
|
||||
*/
|
||||
protected function runFailed($message) {
|
||||
self::printVersionString();
|
||||
print $message;
|
||||
exit(self::FAILURE_EXIT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
private static function printVersionString() {
|
||||
if (!self::$versionStringPrinted) {
|
||||
print PHPUnit2_Runner_Version::getVersionString() . "\n\n";
|
||||
self::$versionStringPrinted = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (PHPUnit2_MAIN_METHOD == 'PHPUnit2_TextUI_TestRunner::main') {
|
||||
PHPUnit2_TextUI_TestRunner::main();
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
225
database/php/pear/PHPUnit2/Util/CodeCoverage/Renderer.php
Normal file
225
database/php/pear/PHPUnit2/Util/CodeCoverage/Renderer.php
Normal file
@@ -0,0 +1,225 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Renderer.php,v 1.8.2.7 2006/02/25 17:02:23 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Abstract base class for Code Coverage renderers.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
* @abstract
|
||||
*/
|
||||
abstract class PHPUnit2_Util_CodeCoverage_Renderer {
|
||||
/**
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $codeCoverageInformation;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $codeCoverageInformation
|
||||
* @access protected
|
||||
*/
|
||||
protected function __construct($codeCoverageInformation) {
|
||||
$this->codeCoverageInformation = $codeCoverageInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract Factory.
|
||||
*
|
||||
* @param string $rendererName
|
||||
* @param array $codeCoverageInformation
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function factory($rendererName, $codeCoverageInformation) {
|
||||
require_once 'PHPUnit2/Util/CodeCoverage/Renderer/' . $rendererName . '.php';
|
||||
|
||||
$class = 'PHPUnit2_Util_CodeCoverage_Renderer_' . $rendererName;
|
||||
return new $class($codeCoverageInformation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Visualizes the result array of
|
||||
* PHPUnit2_Framework_TestResult::getCodeCoverageInformation().
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
* @final
|
||||
*/
|
||||
public final function render() {
|
||||
$buffer = $this->header();
|
||||
|
||||
foreach ($this->getSummary() as $sourceFile => $executedLines) {
|
||||
if (file_exists($sourceFile)) {
|
||||
$buffer .= $this->startSourceFile($sourceFile);
|
||||
$buffer .= $this->renderSourceFile(file($sourceFile), $executedLines);
|
||||
$buffer .= $this->endSourceFile($sourceFile);
|
||||
}
|
||||
}
|
||||
|
||||
return $buffer . $this->footer();
|
||||
}
|
||||
|
||||
/**
|
||||
* Visualizes the result array of
|
||||
* PHPUnit2_Framework_TestResult::getCodeCoverageInformation()
|
||||
* and writes it to a file.
|
||||
*
|
||||
* @param string $filename
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function renderToFile($filename) {
|
||||
if ($fp = fopen($filename, 'w')) {
|
||||
fputs(
|
||||
$fp,
|
||||
$this->render()
|
||||
);
|
||||
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns summarized Code Coverage data.
|
||||
*
|
||||
* Format of the result array:
|
||||
*
|
||||
* <code>
|
||||
* array(
|
||||
* "/tested/code.php" => array(
|
||||
* linenumber => flag
|
||||
* )
|
||||
* )
|
||||
* </code>
|
||||
*
|
||||
* flag > 0: line was executed.
|
||||
* flag < 0: line is executable but was not executed.
|
||||
*
|
||||
* @return array
|
||||
* @access protected
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
protected function getSummary() {
|
||||
$summary = array();
|
||||
|
||||
foreach ($this->codeCoverageInformation as $testCaseName => $sourceFiles) {
|
||||
foreach ($sourceFiles as $sourceFile => $executedLines) {
|
||||
foreach ($executedLines as $lineNumber => $flag) {
|
||||
if (!isset($summary[$sourceFile][$lineNumber])) {
|
||||
$summary[$sourceFile][$lineNumber] = $flag;
|
||||
}
|
||||
|
||||
else if ($flag > 0) {
|
||||
$summary[$sourceFile][$lineNumber] = $flag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $summary;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @access protected
|
||||
* @since Method available since Release 2.1.1
|
||||
*/
|
||||
protected function header() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @access protected
|
||||
* @since Method available since Release 2.1.1
|
||||
*/
|
||||
protected function footer() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sourceFile
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function startSourceFile($sourceFile) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sourceFile
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function endSourceFile($sourceFile) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $codeLines
|
||||
* @param array $executedLines
|
||||
* @return string
|
||||
* @access protected
|
||||
* @abstract
|
||||
*/
|
||||
abstract protected function renderSourceFile($codeLines, $executedLines);
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
191
database/php/pear/PHPUnit2/Util/CodeCoverage/Renderer/HTML.php
Normal file
191
database/php/pear/PHPUnit2/Util/CodeCoverage/Renderer/HTML.php
Normal file
@@ -0,0 +1,191 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: HTML.php,v 1.7.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Util/CodeCoverage/Renderer.php';
|
||||
|
||||
/**
|
||||
* Renders Code Coverage information in HTML format.
|
||||
*
|
||||
* Formatting of the generated HTML can be achieved through
|
||||
* CSS (codecoverage.css).
|
||||
*
|
||||
* Example
|
||||
*
|
||||
* <code>
|
||||
* td.ccLineNumber, td.ccCoveredLine, td.ccUncoveredLine, td.ccNotExecutableLine {
|
||||
* font-family: monospace;
|
||||
* white-space: pre;
|
||||
* }
|
||||
*
|
||||
* td.ccLineNumber, td.ccCoveredLine {
|
||||
* background-color: #aaaaaa;
|
||||
* }
|
||||
*
|
||||
* td.ccNotExecutableLine {
|
||||
* color: #aaaaaa;
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_CodeCoverage_Renderer_HTML extends PHPUnit2_Util_CodeCoverage_Renderer {
|
||||
const pageHeader =
|
||||
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<link href="codecoverage.css" type="text/css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
';
|
||||
|
||||
const pageFooter =
|
||||
' </body>
|
||||
</html>
|
||||
';
|
||||
|
||||
const sourceFileHeader =
|
||||
' <table style="border: 1px solid black" cellspacing="0" cellpadding="0" width="100%">
|
||||
';
|
||||
|
||||
const sourceFileFooter =
|
||||
' </table>
|
||||
';
|
||||
|
||||
const codeLine =
|
||||
' <tr><td class="ccLineNumber">%s</td><td class="%s">%s</td></tr>
|
||||
';
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @access protected
|
||||
* @since Method available since Release 2.1.1
|
||||
*/
|
||||
protected function header() {
|
||||
return self::pageHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @access protected
|
||||
* @since Method available since Release 2.1.1
|
||||
*/
|
||||
protected function footer() {
|
||||
return self::pageFooter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sourceFile
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function startSourceFile($sourceFile) {
|
||||
return self::sourceFileHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sourceFile
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function endSourceFile($sourceFile) {
|
||||
return self::sourceFileFooter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $codeLines
|
||||
* @param array $executedLines
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function renderSourceFile($codeLines, $executedLines) {
|
||||
$buffer = '';
|
||||
$line = 1;
|
||||
|
||||
foreach ($codeLines as $codeLine) {
|
||||
$lineStyle = 'ccNotExecutableLine';
|
||||
|
||||
if (isset($executedLines[$line])) {
|
||||
if ($executedLines[$line] > 0) {
|
||||
$lineStyle = 'ccCoveredLine';
|
||||
} else {
|
||||
$lineStyle = 'ccUncoveredLine';
|
||||
}
|
||||
}
|
||||
|
||||
$buffer .= sprintf(
|
||||
self::codeLine,
|
||||
|
||||
$line,
|
||||
$lineStyle,
|
||||
htmlspecialchars(rtrim($codeLine))
|
||||
);
|
||||
|
||||
$line++;
|
||||
}
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
125
database/php/pear/PHPUnit2/Util/CodeCoverage/Renderer/Text.php
Normal file
125
database/php/pear/PHPUnit2/Util/CodeCoverage/Renderer/Text.php
Normal file
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Text.php,v 1.6.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Util/CodeCoverage/Renderer.php';
|
||||
|
||||
/**
|
||||
* Renders Code Coverage information in text format.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_CodeCoverage_Renderer_Text extends PHPUnit2_Util_CodeCoverage_Renderer {
|
||||
/**
|
||||
* @param string $sourceFile
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function startSourceFile($sourceFile) {
|
||||
return ' ' . $sourceFile . "\n\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sourceFile
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function endSourceFile($sourceFile) {
|
||||
return "\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $codeLines
|
||||
* @param array $executedLines
|
||||
* @return string
|
||||
* @access protected
|
||||
*/
|
||||
protected function renderSourceFile($codeLines, $executedLines) {
|
||||
$buffer = '';
|
||||
$line = 1;
|
||||
|
||||
foreach ($codeLines as $codeLine) {
|
||||
$flag = '-';
|
||||
|
||||
if (isset($executedLines[$line])) {
|
||||
if ($executedLines[$line] > 0) {
|
||||
$flag = '+';
|
||||
} else {
|
||||
$flag = '#';
|
||||
}
|
||||
}
|
||||
|
||||
$buffer .= sprintf(
|
||||
' %4u|%s| %s',
|
||||
|
||||
$line,
|
||||
$flag,
|
||||
$codeLine
|
||||
);
|
||||
|
||||
$line++;
|
||||
}
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
77
database/php/pear/PHPUnit2/Util/ErrorHandler.php
Normal file
77
database/php/pear/PHPUnit2/Util/ErrorHandler.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: ErrorHandler.php,v 1.1.2.2 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param integer $errno
|
||||
* @param string $errstr
|
||||
* @param string $errfile
|
||||
* @param integer $errline
|
||||
* @throws PHPUnit2_Framework_Error
|
||||
* @since Function available since Release 2.3.0
|
||||
*/
|
||||
function PHPUnit2_Util_ErrorHandler($errno, $errstr, $errfile, $errline) {
|
||||
$trace = debug_backtrace();
|
||||
array_shift($trace);
|
||||
|
||||
throw new PHPUnit2_Framework_Error(
|
||||
$errstr,
|
||||
$errno,
|
||||
$errfile,
|
||||
$errline,
|
||||
$trace
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
109
database/php/pear/PHPUnit2/Util/Fileloader.php
Normal file
109
database/php/pear/PHPUnit2/Util/Fileloader.php
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Fileloader.php,v 1.1.2.6 2005/12/19 05:43:56 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.3.0
|
||||
*/
|
||||
class PHPUnit2_Util_Fileloader {
|
||||
/**
|
||||
* Checks if a PHP sourcefile is readable and contains no syntax errors.
|
||||
* If that is the case, the sourcefile is loaded through include_once().
|
||||
*
|
||||
* @param string $filename
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function checkAndLoad($filename) {
|
||||
if (!is_readable($filename)) {
|
||||
$filename = './' . $filename;
|
||||
}
|
||||
|
||||
if (!is_readable($filename)) {
|
||||
throw new Exception(
|
||||
sprintf(
|
||||
'%s could not be found or is not readable.',
|
||||
|
||||
str_replace('./', '', $filename)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$output = shell_exec('php -l ' . escapeshellarg($filename));
|
||||
|
||||
if (strpos($output, 'No syntax errors detected in') === FALSE) {
|
||||
throw new Exception(
|
||||
sprintf(
|
||||
'Syntax error in %s.',
|
||||
|
||||
str_replace('./', '', $filename)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
include_once $filename;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
263
database/php/pear/PHPUnit2/Util/Filter.php
Normal file
263
database/php/pear/PHPUnit2/Util/Filter.php
Normal file
@@ -0,0 +1,263 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Filter.php,v 1.32.2.5 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Utility class for code filtering.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
*/
|
||||
class PHPUnit2_Util_Filter {
|
||||
/**
|
||||
* Source files that are to be filtered.
|
||||
*
|
||||
* @var array
|
||||
* @access protected
|
||||
* @static
|
||||
*/
|
||||
protected static $filteredFiles = array(
|
||||
'PHPUnit2/Extensions/ExceptionTestCase.php',
|
||||
'PHPUnit2/Extensions/PerformanceTestCase.php',
|
||||
'PHPUnit2/Extensions/RepeatedTest.php',
|
||||
'PHPUnit2/Extensions/TestDecorator.php',
|
||||
'PHPUnit2/Extensions/TestSetup.php',
|
||||
'PHPUnit2/Framework/Assert.php',
|
||||
'PHPUnit2/Framework/AssertionFailedError.php',
|
||||
'PHPUnit2/Framework/ComparisonFailure.php',
|
||||
'PHPUnit2/Framework/Error.php',
|
||||
'PHPUnit2/Framework/IncompleteTest.php',
|
||||
'PHPUnit2/Framework/IncompleteTestError.php',
|
||||
'PHPUnit2/Framework/Test.php',
|
||||
'PHPUnit2/Framework/TestCase.php',
|
||||
'PHPUnit2/Framework/TestFailure.php',
|
||||
'PHPUnit2/Framework/TestListener.php',
|
||||
'PHPUnit2/Framework/TestResult.php',
|
||||
'PHPUnit2/Framework/TestSuite.php',
|
||||
'PHPUnit2/Framework/Warning.php',
|
||||
'PHPUnit2/Runner/BaseTestRunner.php',
|
||||
'PHPUnit2/Runner/IncludePathTestCollector.php',
|
||||
'PHPUnit2/Runner/StandardTestSuiteLoader.php',
|
||||
'PHPUnit2/Runner/TestCollector.php',
|
||||
'PHPUnit2/Runner/TestSuiteLoader.php',
|
||||
'PHPUnit2/Runner/Version.php',
|
||||
'PHPUnit2/TextUI/ResultPrinter.php',
|
||||
'PHPUnit2/TextUI/TestRunner.php',
|
||||
'PHPUnit2/Util/CodeCoverage/Renderer/HTML.php',
|
||||
'PHPUnit2/Util/CodeCoverage/Renderer/Text.php',
|
||||
'PHPUnit2/Util/CodeCoverage/Renderer.php',
|
||||
'PHPUnit2/Util/Log/PEAR.php',
|
||||
'PHPUnit2/Util/Log/XML.php',
|
||||
'PHPUnit2/Util/TestDox/ResultPrinter/HTML.php',
|
||||
'PHPUnit2/Util/TestDox/ResultPrinter/Text.php',
|
||||
'PHPUnit2/Util/TestDox/NamePrettifier.php',
|
||||
'PHPUnit2/Util/TestDox/ResultPrinter.php',
|
||||
'PHPUnit2/Util/ErrorHandler.php',
|
||||
'PHPUnit2/Util/Fileloader.php',
|
||||
'PHPUnit2/Util/Filter.php',
|
||||
'PHPUnit2/Util/Printer.php',
|
||||
'PHPUnit2/Util/Skeleton.php',
|
||||
'Benchmark/Timer.php',
|
||||
'Console/Getopt.php',
|
||||
'Log/composite.php',
|
||||
'Log/console.php',
|
||||
'Log/display.php',
|
||||
'Log/error.php',
|
||||
'Log/file.php',
|
||||
'Log/mail.php',
|
||||
'Log/mcal.php',
|
||||
'Log/null.php',
|
||||
'Log/observer.php',
|
||||
'Log/sql.php',
|
||||
'Log/sqlite.php',
|
||||
'Log/syslog.php',
|
||||
'Log/win.php',
|
||||
'Log.php',
|
||||
'PEAR/Config.php',
|
||||
'PEAR.php'
|
||||
);
|
||||
|
||||
/**
|
||||
* Adds a new file to be filtered.
|
||||
*
|
||||
* @param string
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.1.0
|
||||
*/
|
||||
public static function addFileToFilter($filename) {
|
||||
$filename = self::getCanonicalFilename($filename);
|
||||
|
||||
if (!self::isFiltered($filename)) {
|
||||
self::$filteredFiles[] = $filename;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a file from the filter.
|
||||
*
|
||||
* @param string
|
||||
* @access public
|
||||
* @static
|
||||
* @since Method available since Release 2.1.0
|
||||
*/
|
||||
public static function removeFileFromFilter($filename) {
|
||||
$filename = self::getCanonicalFilename($filename);
|
||||
$keys = array_keys(self::$filteredFiles);
|
||||
|
||||
for ($i = 0; $i < sizeof($keys); $i++) {
|
||||
if (self::$filteredFiles[$keys[$i]] == $filename) {
|
||||
unset(self::$filteredFiles[$keys[$i]]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters source lines from PHPUnit classes.
|
||||
*
|
||||
* @param array
|
||||
* @return array
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function getFilteredCodeCoverage($codeCoverageInformation) {
|
||||
$files = array_keys($codeCoverageInformation);
|
||||
|
||||
foreach ($files as $file) {
|
||||
if (self::isFiltered($file)) {
|
||||
unset($codeCoverageInformation[$file]);
|
||||
}
|
||||
}
|
||||
|
||||
return $codeCoverageInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters stack frames from PHPUnit classes.
|
||||
*
|
||||
* @param Exception $e
|
||||
* @return string
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function getFilteredStacktrace(Exception $e) {
|
||||
$filteredStacktrace = '';
|
||||
$stacktrace = $e->getTrace();
|
||||
|
||||
foreach ($stacktrace as $frame) {
|
||||
$filtered = FALSE;
|
||||
|
||||
if (isset($frame['file']) && !self::isFiltered($frame['file'])) {
|
||||
$filteredStacktrace .= sprintf(
|
||||
"%s:%s\n",
|
||||
|
||||
$frame['file'],
|
||||
isset($frame['line']) ? $frame['line'] : '?'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $filteredStacktrace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Canonicalizes a source file name.
|
||||
*
|
||||
* @param string $filename
|
||||
* @return string
|
||||
* @access protected
|
||||
* @static
|
||||
*/
|
||||
protected static function getCanonicalFilename($filename) {
|
||||
foreach (array('PHPUnit2', 'Benchmark', 'Console', 'PEAR') as $package) {
|
||||
$pos = strpos($filename, $package);
|
||||
|
||||
if ($pos !== FALSE) {
|
||||
$filename = substr($filename, $pos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return str_replace(
|
||||
'\\',
|
||||
'/',
|
||||
$filename
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $filename
|
||||
* @return boolean
|
||||
* @access protected
|
||||
* @static
|
||||
* @since Method available since Release 2.1.3
|
||||
*/
|
||||
protected static function isFiltered($filename) {
|
||||
if (substr($filename, -7) == 'phpunit' ||
|
||||
in_array(self::getCanonicalFilename($filename), self::$filteredFiles)) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
220
database/php/pear/PHPUnit2/Util/Log/PEAR.php
Normal file
220
database/php/pear/PHPUnit2/Util/Log/PEAR.php
Normal file
@@ -0,0 +1,220 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: PEAR.php,v 1.2.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestListener.php';
|
||||
|
||||
@include_once 'Log.php';
|
||||
|
||||
/**
|
||||
* A TestListener that logs to a PEAR_Log sink.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_Log_PEAR implements PHPUnit2_Framework_TestListener {
|
||||
/**
|
||||
* Log.
|
||||
*
|
||||
* @var Log
|
||||
* @access private
|
||||
*/
|
||||
private $log;
|
||||
|
||||
/**
|
||||
* @param string $type The type of concrete Log subclass to use.
|
||||
* Currently, valid values are 'console',
|
||||
* 'syslog', 'sql', 'file', and 'mcal'.
|
||||
* @param string $name The name of the actually log file, table, or
|
||||
* other specific store to use. Defaults to an
|
||||
* empty string, with which the subclass will
|
||||
* attempt to do something intelligent.
|
||||
* @param string $ident The identity reported to the log system.
|
||||
* @param array $conf A hash containing any additional configuration
|
||||
* information that a subclass might need.
|
||||
* @param int $maxLevel Maximum priority level at which to log.
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($type, $name = '', $ident = '', $conf = array(), $maxLevel = PEAR_LOG_DEBUG) {
|
||||
$this->log = Log::factory($type, $name, $ident, $conf, $maxLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
* An error occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->log->crit(
|
||||
sprintf(
|
||||
'Test "%s" failed: %s',
|
||||
|
||||
$test->getName(),
|
||||
$e->getMessage()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A failure occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
$this->log->err(
|
||||
sprintf(
|
||||
'Test "%s" failed: %s',
|
||||
|
||||
$test->getName(),
|
||||
$e->getMessage()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Incomplete test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->log->info(
|
||||
sprintf(
|
||||
'Test "%s" incomplete: %s',
|
||||
|
||||
$test->getName(),
|
||||
$e->getMessage()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A test suite started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
$this->log->info(
|
||||
sprintf(
|
||||
'TestSuite "%s" started.',
|
||||
|
||||
$suite->getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A test suite ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
$this->log->info(
|
||||
sprintf(
|
||||
'TestSuite "%s" ended.',
|
||||
|
||||
$suite->getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->log->info(
|
||||
sprintf(
|
||||
'Test "%s" started.',
|
||||
|
||||
$test->getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->log->info(
|
||||
sprintf(
|
||||
'Test "%s" ended.',
|
||||
|
||||
$test->getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
356
database/php/pear/PHPUnit2/Util/Log/XML.php
Normal file
356
database/php/pear/PHPUnit2/Util/Log/XML.php
Normal file
@@ -0,0 +1,356 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: XML.php,v 1.2.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestListener.php';
|
||||
require_once 'PHPUnit2/Util/Filter.php';
|
||||
require_once 'PHPUnit2/Util/Printer.php';
|
||||
|
||||
require_once 'Benchmark/Timer.php';
|
||||
|
||||
/**
|
||||
* A TestListener that generates an XML-based logfile
|
||||
* of the test execution.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_Log_XML extends PHPUnit2_Util_Printer implements PHPUnit2_Framework_TestListener {
|
||||
/**
|
||||
* @var DOMDocument
|
||||
* @access private
|
||||
*/
|
||||
private $document;
|
||||
|
||||
/**
|
||||
* @var DOMElement
|
||||
* @access private
|
||||
*/
|
||||
private $root;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @access private
|
||||
*/
|
||||
private $writeDocument = TRUE;
|
||||
|
||||
/**
|
||||
* @var DOMElement[]
|
||||
* @access private
|
||||
*/
|
||||
private $testSuites = array();
|
||||
|
||||
/**
|
||||
* @var integer[]
|
||||
* @access private
|
||||
*/
|
||||
private $testSuiteTests = array(0);
|
||||
|
||||
/**
|
||||
* @var integer[]
|
||||
* @access private
|
||||
*/
|
||||
private $testSuiteErrors = array(0);
|
||||
|
||||
/**
|
||||
* @var integer[]
|
||||
* @access private
|
||||
*/
|
||||
private $testSuiteFailures = array(0);
|
||||
|
||||
/**
|
||||
* @var integer[]
|
||||
* @access private
|
||||
*/
|
||||
private $testSuiteTimes = array(0);
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
* @access private
|
||||
*/
|
||||
private $testSuiteLevel = 0;
|
||||
|
||||
/**
|
||||
* @var DOMElement
|
||||
* @access private
|
||||
*/
|
||||
private $currentTestCase = NULL;
|
||||
|
||||
/**
|
||||
* @var Benchmark_Timer
|
||||
* @access private
|
||||
*/
|
||||
private $timer;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param mixed $out
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($out = NULL) {
|
||||
$this->document = new DOMDocument('1.0', 'UTF-8');
|
||||
$this->document->formatOutput = TRUE;
|
||||
|
||||
$this->root = $this->document->createElement('testsuites');
|
||||
$this->document->appendChild($this->root);
|
||||
|
||||
$this->timer = new Benchmark_Timer;
|
||||
|
||||
parent::__construct($out);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructor.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function __destruct() {
|
||||
if ($this->writeDocument === TRUE) {
|
||||
$this->write($this->getXML());
|
||||
}
|
||||
|
||||
parent::__destruct();
|
||||
}
|
||||
|
||||
/**
|
||||
* An error occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$error = $this->document->createElement('error', PHPUnit2_Util_Filter::getFilteredStacktrace($e));
|
||||
$error->setAttribute('message', $e->getMessage());
|
||||
$error->setAttribute('type', get_class($e));
|
||||
|
||||
$this->currentTestCase->appendChild($error);
|
||||
|
||||
$this->testSuiteErrors[$this->testSuiteLevel]++;
|
||||
}
|
||||
|
||||
/**
|
||||
* A failure occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
$failure = $this->document->createElement('failure', PHPUnit2_Util_Filter::getFilteredStacktrace($e));
|
||||
$failure->setAttribute('message', $e->getMessage());
|
||||
$failure->setAttribute('type', get_class($e));
|
||||
|
||||
$this->currentTestCase->appendChild($failure);
|
||||
|
||||
$this->testSuiteFailures[$this->testSuiteLevel]++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Incomplete test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$error = $this->document->createElement('error', PHPUnit2_Util_Filter::getFilteredStacktrace($e));
|
||||
$error->setAttribute('message', 'Incomplete Test');
|
||||
$error->setAttribute('type', get_class($e));
|
||||
|
||||
$this->currentTestCase->appendChild($error);
|
||||
|
||||
$this->testSuiteErrors[$this->testSuiteLevel]++;
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
$testSuite = $this->document->createElement('testsuite');
|
||||
$testSuite->setAttribute('name', $suite->getName());
|
||||
|
||||
try {
|
||||
$class = new ReflectionClass($suite->getName());
|
||||
$docComment = $class->getDocComment();
|
||||
|
||||
if (preg_match('/@category[\s]+([\.\w]+)/', $docComment, $matches)) {
|
||||
$testSuite->setAttribute('category', $matches[1]);
|
||||
}
|
||||
|
||||
if (preg_match('/@package[\s]+([\.\w]+)/', $docComment, $matches)) {
|
||||
$testSuite->setAttribute('package', $matches[1]);
|
||||
}
|
||||
|
||||
if (preg_match('/@subpackage[\s]+([\.\w]+)/', $docComment, $matches)) {
|
||||
$testSuite->setAttribute('subpackage', $matches[1]);
|
||||
}
|
||||
}
|
||||
|
||||
catch (ReflectionException $e) {
|
||||
}
|
||||
|
||||
if ($this->testSuiteLevel > 0) {
|
||||
$this->testSuites[$this->testSuiteLevel]->appendChild($testSuite);
|
||||
} else {
|
||||
$this->root->appendChild($testSuite);
|
||||
}
|
||||
|
||||
$this->testSuiteLevel++;
|
||||
$this->testSuites[$this->testSuiteLevel] = $testSuite;
|
||||
$this->testSuiteTests[$this->testSuiteLevel] = 0;
|
||||
$this->testSuiteErrors[$this->testSuiteLevel] = 0;
|
||||
$this->testSuiteFailures[$this->testSuiteLevel] = 0;
|
||||
$this->testSuiteTimes[$this->testSuiteLevel] = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
$this->testSuites[$this->testSuiteLevel]->setAttribute('tests', $this->testSuiteTests[$this->testSuiteLevel]);
|
||||
$this->testSuites[$this->testSuiteLevel]->setAttribute('failures', $this->testSuiteFailures[$this->testSuiteLevel]);
|
||||
$this->testSuites[$this->testSuiteLevel]->setAttribute('errors', $this->testSuiteErrors[$this->testSuiteLevel]);
|
||||
$this->testSuites[$this->testSuiteLevel]->setAttribute('time', $this->testSuiteTimes[$this->testSuiteLevel]);
|
||||
|
||||
if ($this->testSuiteLevel > 1) {
|
||||
$this->testSuiteTests[$this->testSuiteLevel - 1] += $this->testSuiteTests[$this->testSuiteLevel];
|
||||
$this->testSuiteErrors[$this->testSuiteLevel - 1] += $this->testSuiteErrors[$this->testSuiteLevel];
|
||||
$this->testSuiteFailures[$this->testSuiteLevel - 1] += $this->testSuiteFailures[$this->testSuiteLevel];
|
||||
$this->testSuiteTimes[$this->testSuiteLevel - 1] += $this->testSuiteTimes[$this->testSuiteLevel];
|
||||
}
|
||||
|
||||
$this->testSuiteLevel--;
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test) {
|
||||
$testCase = $this->document->createElement('testcase');
|
||||
$testCase->setAttribute('name', $test->getName());
|
||||
$testCase->setAttribute('class', get_class($test));
|
||||
|
||||
$this->testSuites[$this->testSuiteLevel]->appendChild($testCase);
|
||||
$this->currentTestCase = $testCase;
|
||||
|
||||
$this->testSuiteTests[$this->testSuiteLevel]++;
|
||||
|
||||
$this->timer->start();
|
||||
}
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test) {
|
||||
$this->timer->stop();
|
||||
$time = $this->timer->timeElapsed();
|
||||
|
||||
$this->currentTestCase->setAttribute('time', $time);
|
||||
$this->testSuiteTimes[$this->testSuiteLevel] += $time;
|
||||
|
||||
$this->currentTestCase = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the XML as a string.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function getXML() {
|
||||
return $this->document->saveXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables or disables the writing of the document
|
||||
* in __destruct().
|
||||
*
|
||||
* This is a "hack" needed for the integration of
|
||||
* PHPUnit with Phing.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function setWriteDocument($flag) {
|
||||
if (is_bool($flag)) {
|
||||
$this->writeDocument = $flag;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
116
database/php/pear/PHPUnit2/Util/Printer.php
Normal file
116
database/php/pear/PHPUnit2/Util/Printer.php
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Printer.php,v 1.10.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Utility class that can print to STDOUT or write to a file.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.0.0
|
||||
* @abstract
|
||||
*/
|
||||
abstract class PHPUnit2_Util_Printer {
|
||||
/**
|
||||
* @var resource
|
||||
* @access private
|
||||
*/
|
||||
private $out = NULL;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param mixed $out
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($out = NULL) {
|
||||
if ($out !== NULL) {
|
||||
if (is_string($out)) {
|
||||
$this->out = fopen($out, 'w');
|
||||
} else {
|
||||
$this->out = $out;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructor.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function __destruct() {
|
||||
if ($this->out !== NULL) {
|
||||
fclose($this->out);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $buffer
|
||||
* @access public
|
||||
*/
|
||||
public function write($buffer) {
|
||||
if ($this->out !== NULL) {
|
||||
fputs($this->out, $buffer);
|
||||
} else {
|
||||
print $buffer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
340
database/php/pear/PHPUnit2/Util/Skeleton.php
Normal file
340
database/php/pear/PHPUnit2/Util/Skeleton.php
Normal file
@@ -0,0 +1,340 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Skeleton.php,v 1.24.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class for creating a PHPUnit2_Framework_TestCase skeleton file.
|
||||
*
|
||||
* This class will take a classname as a parameter on construction and will
|
||||
* create a PHP file that contains the skeleton of a PHPUnit2_Framework_TestCase
|
||||
* subclass.
|
||||
*
|
||||
* <code>
|
||||
* <?php
|
||||
* require_once 'PHPUnit2/Util/Skeleton.php';
|
||||
*
|
||||
* $skeleton = new PHPUnit2_Util_Skeleton(
|
||||
* 'PHPUnit2_Util_Skeleton',
|
||||
* 'PHPUnit2/Util/Skeleton.php'
|
||||
* );
|
||||
*
|
||||
* $skeleton->write();
|
||||
* ?>
|
||||
* </code>
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_Skeleton {
|
||||
protected $templateClassHeader =
|
||||
'<?php
|
||||
// Call {className}Test::main() if this source file is executed directly.
|
||||
if (!defined("PHPUnit2_MAIN_METHOD")) {
|
||||
define("PHPUnit2_MAIN_METHOD", "{className}Test::main");
|
||||
}
|
||||
|
||||
require_once "PHPUnit2/Framework/TestCase.php";
|
||||
require_once "PHPUnit2/Framework/TestSuite.php";
|
||||
|
||||
// You may remove the following line when all tests have been implemented.
|
||||
require_once "PHPUnit2/Framework/IncompleteTestError.php";
|
||||
|
||||
require_once "{classFile}";
|
||||
|
||||
/**
|
||||
* Test class for {className}.
|
||||
* Generated by PHPUnit2_Util_Skeleton on {date} at {time}.
|
||||
*/
|
||||
class {className}Test extends PHPUnit2_Framework_TestCase {
|
||||
/**
|
||||
* Runs the test methods of this class.
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function main() {
|
||||
require_once "PHPUnit2/TextUI/TestRunner.php";
|
||||
|
||||
$suite = new PHPUnit2_Framework_TestSuite("{className}Test");
|
||||
$result = PHPUnit2_TextUI_TestRunner::run($suite);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the fixture, for example, open a network connection.
|
||||
* This method is called before a test is executed.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function setUp() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tears down the fixture, for example, close a network connection.
|
||||
* This method is called after a test is executed.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function tearDown() {
|
||||
}
|
||||
';
|
||||
|
||||
protected $templateClassFooter =
|
||||
'}
|
||||
|
||||
// Call {className}Test::main() if this source file is executed directly.
|
||||
if (PHPUnit2_MAIN_METHOD == "{className}Test::main") {
|
||||
{className}Test::main();
|
||||
}
|
||||
?>
|
||||
';
|
||||
|
||||
protected $templateMethod =
|
||||
'
|
||||
/**
|
||||
* @todo Implement test{methodName}().
|
||||
*/
|
||||
public function test{methodName}() {
|
||||
// Remove the following line when you implement this test.
|
||||
throw new PHPUnit2_Framework_IncompleteTestError;
|
||||
}
|
||||
';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @access protected
|
||||
*/
|
||||
protected $className;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @access protected
|
||||
*/
|
||||
protected $classSourceFile;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $className
|
||||
* @param string $classSourceFile
|
||||
* @throws Exception
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($className, $classSourceFile = '') {
|
||||
if ($classSourceFile == '') {
|
||||
$classSourceFile = $className . '.php';
|
||||
}
|
||||
|
||||
if (file_exists($classSourceFile)) {
|
||||
$this->classSourceFile = $classSourceFile;
|
||||
} else {
|
||||
throw new Exception(
|
||||
sprintf(
|
||||
'Could not open %s.',
|
||||
|
||||
$classSourceFile
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@include_once $this->classSourceFile;
|
||||
|
||||
if (class_exists($className)) {
|
||||
$this->className = $className;
|
||||
} else {
|
||||
throw new Exception(
|
||||
sprintf(
|
||||
'Could not find class "%s" in %s.',
|
||||
|
||||
$className,
|
||||
$classSourceFile
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the test class' source.
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function generate() {
|
||||
$testClassSource = $this->testClassHeader($this->className, $this->classSourceFile);
|
||||
|
||||
$class = new ReflectionClass($this->className);
|
||||
|
||||
foreach ($class->getMethods() as $method) {
|
||||
if (!$method->isConstructor() &&
|
||||
!$method->isAbstract() &&
|
||||
$method->isUserDefined() &&
|
||||
$method->isPublic() &&
|
||||
$method->getDeclaringClass()->getName() == $this->className) {
|
||||
$testClassSource .= $this->testMethod($method->getName());
|
||||
}
|
||||
}
|
||||
|
||||
$testClassSource .= $this->testClassFooter($this->className);
|
||||
|
||||
return $testClassSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the test class and writes it to a source file.
|
||||
*
|
||||
* @param string $file
|
||||
* @access public
|
||||
*/
|
||||
public function write($file = '') {
|
||||
if ($file == '') {
|
||||
$file = $this->className . 'Test.php';
|
||||
}
|
||||
|
||||
if ($fp = @fopen($file, 'w')) {
|
||||
@fputs($fp, $this->generate());
|
||||
@fclose($fp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the templates for class header, class footer, and method.
|
||||
*
|
||||
* @param string $classHeader
|
||||
* @param string $classFooter
|
||||
* @param string $method
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function setTemplates($classHeader, $classFooter, $method) {
|
||||
if (is_file($classHeader)) {
|
||||
$this->templateClassHeader = file_get_contents($classHeader);
|
||||
} else {
|
||||
$this->templateClassHeader = $classHeader;
|
||||
}
|
||||
|
||||
if (is_file($classFooter)) {
|
||||
$this->templateClassFooter = file_get_contents($classFooter);
|
||||
} else {
|
||||
$this->templateClassFooter = $classFooter;
|
||||
}
|
||||
|
||||
if (is_file($method)) {
|
||||
$this->templateMethod = file_get_contents($method);
|
||||
} else {
|
||||
$this->templateMethod = $method;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $className
|
||||
* @param string $classSourceFile
|
||||
* @access protected
|
||||
*/
|
||||
protected function testClassHeader($className, $classSourceFile) {
|
||||
return str_replace(
|
||||
array(
|
||||
'{className}',
|
||||
'{classFile}',
|
||||
'{date}',
|
||||
'{time}'
|
||||
),
|
||||
array(
|
||||
$className,
|
||||
$classSourceFile,
|
||||
date('Y-m-d'),
|
||||
date('H:i:s')
|
||||
),
|
||||
$this->templateClassHeader
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $className
|
||||
* @access protected
|
||||
*/
|
||||
protected function testClassFooter($className) {
|
||||
return str_replace(
|
||||
array(
|
||||
'{className}'
|
||||
),
|
||||
array(
|
||||
$className
|
||||
),
|
||||
$this->templateClassFooter
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $methodName
|
||||
* @access protected
|
||||
*/
|
||||
protected function testMethod($methodName) {
|
||||
return str_replace(
|
||||
array(
|
||||
'{methodName}'
|
||||
),
|
||||
array(
|
||||
ucfirst($methodName)
|
||||
),
|
||||
$this->templateMethod
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
165
database/php/pear/PHPUnit2/Util/TestDox/NamePrettifier.php
Normal file
165
database/php/pear/PHPUnit2/Util/TestDox/NamePrettifier.php
Normal file
@@ -0,0 +1,165 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: NamePrettifier.php,v 1.2.2.2 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Prettifies class and method names for use in TestDox documentation.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_TestDox_NamePrettifier {
|
||||
/**
|
||||
* @var string
|
||||
* @access protected
|
||||
*/
|
||||
protected $prefix = 'Test';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @access protected
|
||||
*/
|
||||
protected $suffix = 'Test';
|
||||
|
||||
/**
|
||||
* Tests if a method is a test method.
|
||||
*
|
||||
* @param string $testMethodName
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
public function isATestMethod($testMethodName) {
|
||||
if (substr($testMethodName, 0, 4) == 'test') {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prettifies the name of a test class.
|
||||
*
|
||||
* @param string $testClassName
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function prettifyTestClass($testClassName) {
|
||||
$title = $testClassName;
|
||||
|
||||
if ($this->suffix !== NULL &&
|
||||
$this->suffix == substr($testClassName, -1 * strlen($this->suffix))) {
|
||||
$title = substr($title, 0, strripos($title, $this->suffix));
|
||||
}
|
||||
|
||||
if ($this->prefix !== NULL &&
|
||||
$this->prefix == substr($testClassName, 0, strlen($this->prefix))) {
|
||||
$title = substr($title, strlen($this->prefix));
|
||||
}
|
||||
|
||||
return $title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prettifies the name of a test method.
|
||||
*
|
||||
* @param string $testMethodName
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
public function prettifyTestMethod($testMethodName) {
|
||||
$buffer = '';
|
||||
|
||||
$testMethodName = preg_replace('#\d+$#', '', $testMethodName);
|
||||
|
||||
for ($i = 4; $i < strlen($testMethodName); $i++) {
|
||||
if ($i > 4 &&
|
||||
ord($testMethodName[$i]) >= 65 &&
|
||||
ord($testMethodName[$i]) <= 90) {
|
||||
$buffer .= ' ' . strtolower($testMethodName[$i]);
|
||||
} else {
|
||||
$buffer .= $testMethodName[$i];
|
||||
}
|
||||
}
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the prefix of test names.
|
||||
*
|
||||
* @param string $prefix
|
||||
* @access public
|
||||
*/
|
||||
public function setPrefix($prefix) {
|
||||
$this->prefix = $prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the suffix of test names.
|
||||
*
|
||||
* @param string $prefix
|
||||
* @access public
|
||||
*/
|
||||
public function setSuffix($suffix) {
|
||||
$this->suffix = $suffix;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
299
database/php/pear/PHPUnit2/Util/TestDox/ResultPrinter.php
Normal file
299
database/php/pear/PHPUnit2/Util/TestDox/ResultPrinter.php
Normal file
@@ -0,0 +1,299 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: ResultPrinter.php,v 1.2.2.6 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Framework/TestListener.php';
|
||||
require_once 'PHPUnit2/Util/TestDox/NamePrettifier.php';
|
||||
require_once 'PHPUnit2/Util/Printer.php';
|
||||
|
||||
/**
|
||||
* Base class for printers of TestDox documentation.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
* @abstract
|
||||
*/
|
||||
abstract class PHPUnit2_Util_TestDox_ResultPrinter extends PHPUnit2_Util_Printer implements PHPUnit2_Framework_TestListener {
|
||||
/**
|
||||
* @var PHPUnit2_Util_TestDox_NamePrettifier
|
||||
* @access protected
|
||||
*/
|
||||
protected $prettifier;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @access protected
|
||||
*/
|
||||
protected $testClass = '';
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @access protected
|
||||
*/
|
||||
protected $testFailed = FALSE;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @access protected
|
||||
*/
|
||||
protected $tests = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param resource $out
|
||||
* @access public
|
||||
*/
|
||||
public function __construct($out = NULL) {
|
||||
parent::__construct($out);
|
||||
|
||||
$this->prettifier = new PHPUnit2_Util_TestDox_NamePrettifier;
|
||||
$this->startRun();
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructor.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function __destruct() {
|
||||
$this->doEndClass();
|
||||
$this->endRun();
|
||||
|
||||
parent::__destruct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract Factory.
|
||||
*
|
||||
* @param string $type
|
||||
* @param resource $out
|
||||
* @throws Exception
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public static function factory($type, $out = NULL) {
|
||||
require_once 'PHPUnit2/Util/TestDox/ResultPrinter/' . $type . '.php';
|
||||
|
||||
$class = 'PHPUnit2_Util_TestDox_ResultPrinter_' . $type;
|
||||
return new $class($out);
|
||||
}
|
||||
|
||||
/**
|
||||
* An error occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addError(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->testFailed = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* A failure occurred.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param PHPUnit2_Framework_AssertionFailedError $e
|
||||
* @access public
|
||||
*/
|
||||
public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) {
|
||||
$this->testFailed = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Incomplete test.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @param Exception $e
|
||||
* @access public
|
||||
*/
|
||||
public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e) {
|
||||
$this->testFailed = TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function startTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A testsuite ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_TestSuite $suite
|
||||
* @access public
|
||||
* @since Method available since Release 2.2.0
|
||||
*/
|
||||
public function endTestSuite(PHPUnit2_Framework_TestSuite $suite) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A test started.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function startTest(PHPUnit2_Framework_Test $test) {
|
||||
$class = get_class($test);
|
||||
|
||||
if ($this->testClass != $class) {
|
||||
if ($this->testClass != '') {
|
||||
$this->doEndClass();
|
||||
}
|
||||
|
||||
$this->startClass($this->prettifier->prettifyTestClass($class));
|
||||
|
||||
$this->testClass = $class;
|
||||
$this->tests = array();
|
||||
}
|
||||
|
||||
$this->testFailed = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* A test ended.
|
||||
*
|
||||
* @param PHPUnit2_Framework_Test $test
|
||||
* @access public
|
||||
*/
|
||||
public function endTest(PHPUnit2_Framework_Test $test) {
|
||||
$prettifiedName = $this->prettifier->prettifyTestMethod($test->getName());
|
||||
|
||||
if (!isset($this->tests[$prettifiedName])) {
|
||||
if (!$this->testFailed) {
|
||||
$this->tests[$prettifiedName]['success'] = 1;
|
||||
$this->tests[$prettifiedName]['failure'] = 0;
|
||||
} else {
|
||||
$this->tests[$prettifiedName]['success'] = 0;
|
||||
$this->tests[$prettifiedName]['failure'] = 1;
|
||||
}
|
||||
} else {
|
||||
if (!$this->testFailed) {
|
||||
$this->tests[$prettifiedName]['success']++;
|
||||
} else {
|
||||
$this->tests[$prettifiedName]['failure']++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @since Method available since Release 2.3.0
|
||||
*/
|
||||
private function doEndClass() {
|
||||
foreach ($this->tests as $name => $data) {
|
||||
if ($data['failure'] == 0) {
|
||||
$this->onTest($name);
|
||||
}
|
||||
}
|
||||
|
||||
$this->endClass($this->prettifier->prettifyTestClass($this->testClass));
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'start run' event.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function startRun() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'start class' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
* @abstract
|
||||
*/
|
||||
abstract protected function startClass($name);
|
||||
|
||||
/**
|
||||
* Handler for 'on test' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
* @abstract
|
||||
*/
|
||||
abstract protected function onTest($name);
|
||||
|
||||
/**
|
||||
* Handler for 'end class' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
* @abstract
|
||||
*/
|
||||
abstract protected function endClass($name);
|
||||
|
||||
/**
|
||||
* Handler for 'end run' event.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function endRun() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
120
database/php/pear/PHPUnit2/Util/TestDox/ResultPrinter/HTML.php
Normal file
120
database/php/pear/PHPUnit2/Util/TestDox/ResultPrinter/HTML.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: HTML.php,v 1.2.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Util/TestDox/ResultPrinter.php';
|
||||
|
||||
/**
|
||||
* Prints TestDox documentation in HTML format.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_TestDox_ResultPrinter_HTML extends PHPUnit2_Util_TestDox_ResultPrinter {
|
||||
/**
|
||||
* Handler for 'start run' event.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function startRun() {
|
||||
$this->write('<html><body>');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'start class' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
*/
|
||||
protected function startClass($name) {
|
||||
$this->write('<h2>' . $name . '</h2><ul>');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'on test' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
*/
|
||||
protected function onTest($name) {
|
||||
$this->write('<li>' . $name . '</li>');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'end class' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
*/
|
||||
protected function endClass($name) {
|
||||
$this->write('</ul>');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'end run' event.
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected function endRun() {
|
||||
$this->write('</body></html>');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
102
database/php/pear/PHPUnit2/Util/TestDox/ResultPrinter/Text.php
Normal file
102
database/php/pear/PHPUnit2/Util/TestDox/ResultPrinter/Text.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* PHP Version 5
|
||||
*
|
||||
* Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Sebastian Bergmann nor the names of his
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version CVS: $Id: Text.php,v 1.2.2.3 2005/12/17 16:04:58 sebastian Exp $
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since File available since Release 2.3.0
|
||||
*/
|
||||
|
||||
require_once 'PHPUnit2/Util/TestDox/ResultPrinter.php';
|
||||
|
||||
/**
|
||||
* Prints TestDox documentation in text format.
|
||||
*
|
||||
* @category Testing
|
||||
* @package PHPUnit2
|
||||
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
|
||||
* @version Release: 2.3.6
|
||||
* @link http://pear.php.net/package/PHPUnit2
|
||||
* @since Class available since Release 2.1.0
|
||||
*/
|
||||
class PHPUnit2_Util_TestDox_ResultPrinter_Text extends PHPUnit2_Util_TestDox_ResultPrinter {
|
||||
/**
|
||||
* Handler for 'start class' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
*/
|
||||
protected function startClass($name) {
|
||||
$this->write($name . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'on test' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
*/
|
||||
protected function onTest($name) {
|
||||
$this->write(' - ' . $name . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for 'end class' event.
|
||||
*
|
||||
* @param string $name
|
||||
* @access protected
|
||||
*/
|
||||
protected function endClass($name) {
|
||||
$this->write("\n");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
?>
|
||||
Reference in New Issue
Block a user