diff --git a/PHPUnit/Autoload.php b/PHPUnit/Autoload.php index 9c421eb77d5..18c9d18be4d 100644 --- a/PHPUnit/Autoload.php +++ b/PHPUnit/Autoload.php @@ -74,6 +74,7 @@ function ($class) 'phpunit_extensions_ticketlistener' => '/Extensions/TicketListener.php', 'phpunit_framework_assert' => '/Framework/Assert.php', 'phpunit_framework_assertionfailederror' => '/Framework/AssertionFailedError.php', + 'phpunit_framework_basetestlistener' => '/Framework/BaseTestListener.php', 'phpunit_framework_comparator' => '/Framework/Comparator.php', 'phpunit_framework_comparator_array' => '/Framework/Comparator/Array.php', 'phpunit_framework_comparator_domdocument' => '/Framework/Comparator/DOMDocument.php', diff --git a/PHPUnit/Framework/BaseTestListener.php b/PHPUnit/Framework/BaseTestListener.php new file mode 100644 index 00000000000..60cf2ccf536 --- /dev/null +++ b/PHPUnit/Framework/BaseTestListener.php @@ -0,0 +1,76 @@ +. + * 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, STRICT + * 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. + * + * @package PHPUnit + * @subpackage Framework + * @author Giorgio Sironi + * @copyright 2001-2013 Sebastian Bergmann + * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License + * @link http://www.phpunit.de/ + * @since File available since Release 3.8.0 + */ + +/** + * An empty Listener that can be extended to implement TestListener + * with just a few lines of code. + * @see PHPUnit_Framework_TestListener for documentation on the API methods. + * + * @package PHPUnit + * @subpackage Framework + * @author Giorgio Sironi + * @copyright 2001-2013 Sebastian Bergmann + * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License + * @link http://www.phpunit.de/ + * @since Class available since Release 3.8.0 + */ +abstract class PHPUnit_Framework_BaseTestListener implements PHPUnit_Framework_TestListener +{ + public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) {} + + public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) {} + + public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) {} + + public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) {} + + public function startTestSuite(PHPUnit_Framework_TestSuite $suite) {} + + public function endTestSuite(PHPUnit_Framework_TestSuite $suite) {} + + public function startTest(PHPUnit_Framework_Test $test) {} + + public function endTest(PHPUnit_Framework_Test $test, $time) {} +} diff --git a/Tests/Framework/BaseTestListenerTest.php b/Tests/Framework/BaseTestListenerTest.php new file mode 100644 index 00000000000..6d03bcc1018 --- /dev/null +++ b/Tests/Framework/BaseTestListenerTest.php @@ -0,0 +1,79 @@ +. + * 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, STRICT + * 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. + * + * @package PHPUnit + * @author Giorgio Sironi + * @copyright 2001-2013 Sebastian Bergmann + * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License + * @link http://www.phpunit.de/ + * @since File available since Release 3.8.0 + */ + +require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Success.php'; + +/** + * + * + * @package PHPUnit + * @author Giorgio Sironi + * @copyright 2001-2013 Sebastian Bergmann + * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License + * @link http://www.phpunit.de/ + * @since Class available since Release 3.8.0 + */ +class Framework_BaseTestListenerTest extends PHPUnit_Framework_TestCase +{ + public function testEndEventsAreCounted() + { + $this->result = new PHPUnit_Framework_TestResult; + $listener = new Tests_Framework_BaseTestListenerSample(); + $this->result->addListener($listener); + $test = new Success; + $test->run($this->result); + + $this->assertEquals(1, $listener->endCount); + } +} + +class Tests_Framework_BaseTestListenerSample extends PHPUnit_Framework_BaseTestListener +{ + public $endCount = 0; + + public function endTest(PHPUnit_Framework_Test $test, $time) + { + $this->endCount++; + } +}