diff cake/tests/lib/reporter/cake_base_reporter.php @ 0:261e66bd5a0c

hg init
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Sun, 24 Jul 2011 21:08:31 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cake/tests/lib/reporter/cake_base_reporter.php	Sun Jul 24 21:08:31 2011 +0900
@@ -0,0 +1,225 @@
+<?php
+/**
+ * CakeBaseReporter contains common functionality to all cake test suite reporters.
+ *
+ * PHP versions 4 and 5
+ *
+ * CakePHP(tm) Tests <http://book.cakephp.org/view/1196/Testing>
+ * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ *  Licensed under The Open Group Test Suite License
+ *  Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright     Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link          http://cakephp.org CakePHP(tm) Project
+ * @package       cake
+ * @subpackage    cake.tests.libs.reporter
+ * @since         CakePHP(tm) v 1.3
+ * @license       http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
+ */
+
+/**
+ * CakeBaseReporter contains common reporting features used in the CakePHP Test suite
+ *
+ * @package cake
+ * @subpackage cake.tests.lib
+ */
+class CakeBaseReporter extends SimpleReporter {
+
+/**
+ * Time the test runs started.
+ *
+ * @var integer
+ * @access protected
+ */
+	var $_timeStart = 0;
+
+/**
+ * Time the test runs ended
+ *
+ * @var integer
+ * @access protected
+ */
+	var $_timeEnd = 0;
+
+/**
+ * Duration of all test methods.
+ *
+ * @var integer
+ * @access protected
+ */
+	var $_timeDuration = 0;
+
+/**
+ * Array of request parameters.  Usually parsed GET params.
+ *
+ * @var array
+ */
+	var $params = array();
+
+/**
+ * Character set for the output of test reporting.
+ *
+ * @var string
+ * @access protected
+ */
+	var $_characterSet;
+
+/**
+ * Does nothing yet. The first output will
+ * be sent on the first test start.
+ *
+ * ### Params
+ *
+ * - show_passes - Should passes be shown
+ * - plugin - Plugin test being run?
+ * - app - App test being run.
+ * - case - The case being run
+ * - codeCoverage - Whether the case/group being run is being code covered.
+ * 
+ * @param string $charset The character set to output with. Defaults to UTF-8
+ * @param array $params Array of request parameters the reporter should use. See above.
+ * @access public
+ */
+	function CakeBaseReporter($charset = 'utf-8', $params = array()) {
+		$this->SimpleReporter();
+		if (!$charset) {
+			$charset = 'utf-8';
+		}
+		$this->_characterSet = $charset;
+		$this->params = $params;
+	}
+
+/**
+ * Signals / Paints the beginning of a TestSuite executing.
+ * Starts the timer for the TestSuite execution time.
+ *
+ * @param string $test_name Name of the test that is being run.
+ * @param integer $size 
+ * @return void
+ */
+	function paintGroupStart($test_name, $size) {
+		if (empty($this->_timeStart)) {
+			$this->_timeStart = $this->_getTime();
+		}
+		parent::paintGroupStart($test_name, $size);
+	}
+
+/**
+ * Signals/Paints the end of a TestSuite. All test cases have run
+ * and timers are stopped.
+ *
+ * @param string $test_name Name of the test that is being run.
+ * @return void
+ */
+	function paintGroupEnd($test_name) {
+		$this->_timeEnd = $this->_getTime();
+		$this->_timeDuration = $this->_timeEnd - $this->_timeStart;
+		parent::paintGroupEnd($test_name);
+	}
+
+/**
+ * Paints the beginning of a test method being run.  This is used
+ * to start/resume the code coverage tool.
+ *
+ * @param string $method The method name being run.
+ * @return void
+ */
+	function paintMethodStart($method) {
+		parent::paintMethodStart($method);
+		if (!empty($this->params['codeCoverage'])) {
+			CodeCoverageManager::start();
+		}
+	}
+
+/**
+ * Paints the end of a test method being run.  This is used
+ * to pause the collection of code coverage if its being used.
+ *
+ * @param string $method The name of the method being run.
+ * @return void
+ */
+	function paintMethodEnd($method) {
+		parent::paintMethodEnd($method);
+		if (!empty($this->params['codeCoverage'])) {
+			CodeCoverageManager::stop();
+		}
+	}
+
+/**
+ * Get the current time in microseconds. Similar to getMicrotime in basics.php
+ * but in a separate function to reduce dependancies.
+ *
+ * @return float Time in microseconds
+ * @access protected
+ */
+	function _getTime() {
+		list($usec, $sec) = explode(' ', microtime());
+		return ((float)$sec + (float)$usec);
+	}
+
+/**
+ * Retrieves a list of test cases from the active Manager class,
+ * displaying it in the correct format for the reporter subclass
+ *
+ * @return mixed
+ */
+	function testCaseList() {
+		$testList = TestManager::getTestCaseList();
+		return $testList;
+	}
+
+/**
+ * Retrieves a list of group test cases from the active Manager class
+ * displaying it in the correct format for the reporter subclass.
+ *
+ * @return void
+ */
+	function groupTestList() {
+		$testList = TestManager::getGroupTestList();
+		return $testList;
+	}
+
+/**
+ * Paints the start of the response from the test suite.
+ * Used to paint things like head elements in an html page.
+ *
+ * @return void
+ */
+	function paintDocumentStart() {
+
+	}
+
+/**
+ * Paints the end of the response from the test suite.
+ * Used to paint things like </body> in an html page.
+ *
+ * @return void
+ */
+	function paintDocumentEnd() {
+		
+	}
+
+/**
+ * Paint a list of test sets, core, app, and plugin test sets
+ * available.
+ *
+ * @return void
+ */
+	function paintTestMenu() {
+		
+	}
+
+/**
+ * Get the baseUrl if one is available.
+ *
+ * @return string The base url for the request.
+ */
+	function baseUrl() {
+		if (!empty($_SERVER['PHP_SELF'])) {
+			return $_SERVER['PHP_SELF'];
+		}
+		return '';
+	}
+
+}