summaryrefslogtreecommitdiff
path: root/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php
diff options
context:
space:
mode:
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php')
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php103
1 files changed, 103 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php
new file mode 100644
index 0000000..e2f39cd
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * TestRunner for CakePHP Test suite.
+ *
+ * PHP 5
+ *
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link http://cakephp.org CakePHP(tm) Project
+ * @since CakePHP(tm) v 2.0
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+require_once 'PHPUnit/TextUI/TestRunner.php';
+
+/**
+ * A custom test runner for Cake's use of PHPUnit.
+ *
+ * @package Cake.TestSuite
+ */
+class CakeTestRunner extends PHPUnit_TextUI_TestRunner {
+
+/**
+ * Lets us pass in some options needed for cake's webrunner.
+ *
+ * @return void
+ */
+ public function __construct($loader, $params) {
+ parent::__construct($loader);
+ $this->_params = $params;
+ }
+
+/**
+ * Actually run a suite of tests. Cake initializes fixtures here using the chosen fixture manager
+ *
+ * @param PHPUnit_Framework_Test $suite
+ * @param array $arguments
+ * @return void
+ */
+ public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array()) {
+ if (isset($arguments['printer'])) {
+ self::$versionStringPrinted = true;
+ }
+
+ $fixture = $this->_getFixtureManager($arguments);
+ foreach ($suite->getIterator() as $test) {
+ if ($test instanceof CakeTestCase) {
+ $fixture->fixturize($test);
+ $test->fixtureManager = $fixture;
+ }
+ }
+
+ $return = parent::doRun($suite, $arguments);
+ $fixture->shutdown();
+ return $return;
+ }
+
+// @codingStandardsIgnoreStart PHPUnit overrides don't match CakePHP
+/**
+ * Create the test result and splice on our code coverage reports.
+ *
+ * @return PHPUnit_Framework_TestResult
+ */
+ protected function createTestResult() {
+ $result = new PHPUnit_Framework_TestResult;
+ if (!empty($this->_params['codeCoverage'])) {
+ if (method_exists($result, 'collectCodeCoverageInformation')) {
+ $result->collectCodeCoverageInformation(true);
+ }
+ if (method_exists($result, 'setCodeCoverage')) {
+ $result->setCodeCoverage(new PHP_CodeCoverage());
+ }
+ }
+ return $result;
+ }
+// @codingStandardsIgnoreEnd
+
+/**
+ * Get the fixture manager class specified or use the default one.
+ *
+ * @return instance of a fixture manager.
+ * @throws RuntimeException When fixture manager class cannot be loaded.
+ */
+ protected function _getFixtureManager($arguments) {
+ if (isset($arguments['fixtureManager'])) {
+ App::uses($arguments['fixtureManager'], 'TestSuite');
+ if (class_exists($arguments['fixtureManager'])) {
+ return new $arguments['fixtureManager'];
+ }
+ throw new RuntimeException(__d('cake_dev', 'Could not find fixture manager %s.', $arguments['fixtureManager']));
+ }
+ App::uses('AppFixtureManager', 'TestSuite');
+ if (class_exists('AppFixtureManager')) {
+ return new AppFixtureManager();
+ }
+ return new CakeFixtureManager();
+ }
+
+}