From 4d74dc6bda2ad5e9703d41859c0a263da88ac19b Mon Sep 17 00:00:00 2001 From: Mark Story Date: Sun, 3 Jan 2010 22:03:49 -0500 Subject: [PATCH] Adding CakeTestMenu to clear up some global methods. --- cake/tests/lib/cake_test_menu.php | 197 ++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 cake/tests/lib/cake_test_menu.php diff --git a/cake/tests/lib/cake_test_menu.php b/cake/tests/lib/cake_test_menu.php new file mode 100644 index 000000000..6eb9bf2bb --- /dev/null +++ b/cake/tests/lib/cake_test_menu.php @@ -0,0 +1,197 @@ + + * Copyright 2005-2009, 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-2009, Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake + * @subpackage cake.cake.tests.lib + * @since CakePHP(tm) v 1.3 + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + */ +class CakeTestMenu { +/** + * Provides the "Run More" links in the testsuite interface + * + * @return void + * @access public + */ + function runMore() { + switch (CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + if (isset($_GET['group'])) { + if (isset($_GET['app'])) { + $show = '?show=groups&app=true'; + } else if (isset($_GET['plugin'])) { + $show = '?show=groups&plugin=' . $_GET['plugin']; + } else { + $show = '?show=groups'; + } + $query = '?group='.$_GET['group']; + if (isset($_GET['app'])) { + $query .= '&app=true'; + } elseif (isset($_GET['plugin'])) { + $query .= '&plugin=' . $_GET['plugin']; + } + } + if (isset($_GET['case'])) { + if (isset($_GET['app'])) { + $show = '?show=cases&app=true'; + } else if (isset($_GET['plugin'])) { + $show = '?show=cases&plugin=' . $_GET['plugin']; + } else { + $show = '?show=cases'; + } + $query = '?case='.$_GET['case']; + if (isset($_GET['app'])) { + $query .= '&app=true'; + } elseif (isset($_GET['plugin'])) { + $query .= '&plugin=' . $_GET['plugin']; + } + } + ob_start(); + echo "

Run more tests | Show Passes | \n"; + + break; + } + } + +/** + * Provides the links to analyzing code coverage + * + * @return void + * @access public + */ + function analyzeCodeCoverage() { + switch (CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + if (isset($_GET['case'])) { + $query = '?case='.$_GET['case']; + if (isset($_GET['app'])) { + $query .= '&app=true'; + } elseif (isset($_GET['plugin'])) { + $query .= '&plugin=' . $_GET['plugin']; + } + } else { + $query = '?group='.$_GET['group']; + if (isset($_GET['app'])) { + $query .= '&app=true'; + } elseif (isset($_GET['plugin'])) { + $query .= '&plugin=' . $_GET['plugin']; + } + } + $query .= '&code_coverage=true'; + ob_start(); + echo " Analyze Code Coverage

\n"; + + break; + } + } + +/** + * Prints a list of test cases + * + * @return void + * @access public + */ + function testCaseList() { + switch (CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + ob_start(); + echo HtmlTestManager::getTestCaseList(); + break; + case CAKE_TEST_OUTPUT_TEXT: + default: + echo TextTestManager::getTestCaseList(); + break; + } + } + +/** + * Prints a list of group tests + * + * @return void + * @access public + */ + function groupTestList() { + switch (CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + echo HtmlTestManager::getGroupTestList(); + break; + case CAKE_TEST_OUTPUT_TEXT: + default: + echo TextTestManager::getGroupTestList(); + break; + } + } + +/** + * Includes the Testsuite Header + * + * @return void + * @access public + */ + function testHeader() { + switch (CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + ob_start(); + if (!class_exists('dispatcher')) { + require CAKE . 'dispatcher.php'; + } + $dispatch =& new Dispatcher(); + $dispatch->baseUrl(); + define('BASE', $dispatch->webroot); + $baseUrl = BASE; + $characterSet = 'charset=utf-8'; + include CAKE_TESTS_LIB . 'header.php'; + + break; + case CAKE_TEST_OUTPUT_TEXT: + default: + header('content-type: text/plain'); + break; + } + } + +/** + * Provides the left hand navigation for the testsuite + * + * @return void + * @access public + */ + function testSuiteHeader() { + switch (CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + ob_start(); + $groups = $_SERVER['PHP_SELF'].'?show=groups'; + $cases = $_SERVER['PHP_SELF'].'?show=cases'; + $plugins = App::objects('plugin'); + include CAKE_TESTS_LIB . 'content.php'; + break; + } + } + +/** + * Provides the testsuite footer text + * + * @return void + * @access public + */ + function footer() { + switch ( CAKE_TEST_OUTPUT) { + case CAKE_TEST_OUTPUT_HTML: + ob_start(); + $baseUrl = BASE; + include CAKE_TESTS_LIB . 'footer.php'; + break; + } + } +} \ No newline at end of file