/include/phpgacl/test_suite/run.php
PHP | 161 lines | 114 code | 29 blank | 18 comment | 12 complexity | 5eb647da2f4bbed9e795a559e4c485f1 MD5 | raw file
Possible License(s): LGPL-2.1, GPL-2.0, BSD-3-Clause, LGPL-2.0, CC-BY-SA-3.0, AGPL-1.0
- <?php
- // require gacl & phpunit
- require_once(dirname(__FILE__).'/../admin/gacl_admin.inc.php');
- require_once(dirname(__FILE__).'/phpunit/phpunit.php');
-
- /*! class
- custom test result class for pretty results
- !*/
- class gacl_test_result extends TestResult {
-
- var $output = '';
- var $class_name;
-
- function report() {
- /* results table */
- echo '<h2>Test Results</h2>' . "\n";
- echo '<table cellspacing="1" cellpadding="1" border="1" class="details">'."\n";
- echo '<tr><th>Function</th><th width="10%">Success?</th></tr>'."\n";
- echo $this->output;
- echo '</table>'."\n";
-
- /* summary */
- $nRun = $this->countTests();
- $nFailures = $this->countFailures();
- echo '<h2>Summary</h2>'."\n";
- printf('<div class="indent"><p>%s test%s run<br />', $nRun, ($nRun == 1) ? '' : 's');
- printf("%s failure%s.</p></div>\n", $nFailures, ($nFailures == 1) ? '' : 's');
- }
-
- function _startTest($test) {
- }
-
- function _endTest($test) {
- if ( $test->classname() != $this->class_name ) {
- $this->class_name = $test->classname();
- $this->output .= '<tr><td colspan="2" class="class_name">'. $test->classname() .'</td></tr>'."\n";
- }
-
- $this->output .= '<tr><td class="function">'. $test->name();
- if ($test->failed()) {
- $this->output .= "<ul>\n";
- foreach ($test->getExceptions() as $exception) {
- $this->output .= '<li>'. $exception->getMessage() ."</li>\n";
- }
- $this->output .= "</ul>\n";
-
- $outcome = ' class="fail">FAIL';
- } else {
- $outcome = ' class="pass">OK';
- }
-
- $this->output .= '</td><td'. $outcome .'</td></tr>'."\n";
- }
- }
-
- /*! class
- custom TestCase class to allow control of error formatting
-
- can also be used for custom assert functions
- !*/
- class gacl_test_case extends TestCase {
-
- var $gacl_api;
-
- function gacl_test_case($name) {
- $this->TestCase($name);
- $this->gacl_api = &$GLOBALS['gacl_api'];
- }
-
- function setUp() {
- }
-
- function tearDown() {
- }
-
- function _formatValue($value, $class='') {
- if (phpversion() < '4.0.0') {
- return '<code class="'. $class .'">'. htmlentities((string)$value) .'</code>';
- }
-
- switch (TRUE)
- {
- case is_object($value):
- if (method_exists($value, 'toString')) {
- $translateValue = $value->toString();
- } else {
- $translateValue = serialize($value);
- }
-
- $htmlValue = htmlentities($translateValue);
- break;
- case is_array($value):
- ob_start();
- print_r($value);
- $translateValue = ob_get_contents();
- ob_end_clean();
-
- $htmlValue = nl2br(str_replace(' ', ' ', htmlentities(rtrim($translateValue))));
- break;
- case is_bool($value):
- $htmlValue = $value ? '<i>true</i>' : '<i>false</i>';
- break;
- case phpversion() >= '4.0.4' && is_null($value):
- $htmlValue = '<i>null</i>';
- break;
- default:
- $htmlValue = htmlentities(strval($value));
- }
-
- $htmlValue = '<code class="'. $class . '">' . $htmlValue . '</code>';
- $htmlValue .= ' <span class="typeinfo">';
- $htmlValue .= 'type:' . gettype($value);
-
- if (is_object($value)) {
- $htmlValue .= ', class:' . get_class($value);
- }
-
- $htmlValue .= '</span>';
-
- return $htmlValue;
- }
- }
-
- /*! class
- custom TestSuite class for future expansion
- !*/
- class gacl_test_suite extends TestSuite {
-
- }
-
- $title = 'phpGACL Test Suite';
- ?>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title><?php echo $title; ?></title>
- <link rel="stylesheet" href="styles.css" type="text/css" title="GACL Test Suite Styles"/>
- </head>
- <body>
- <h1><?php echo $title; ?></h1>
- <h2>Running Tests</h2>
- <div class="indent">
- <?php
- // initialise result
- $result = new gacl_test_result;
-
- // run api tests
- include('unit_tests.php');
-
- // run acl tests
- include('acl_tests.php');
-
- echo '
- </div>
- ';
-
- // show report
- $result->report();
- ?>
- </body>
- </html>