From: Reini U. <ru...@us...> - 2004-05-24 17:33:27
|
Update of /cvsroot/phpwiki/phpwiki/tests/unit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3800/unit Modified Files: readme.html test.php Log Message: renamed testbox to .testbox fixed InlineParser link tests added HtmlParser tests enhanced MockRequest Index: readme.html =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/tests/unit/readme.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -2 -b -p -d -r1.1 -r1.2 --- readme.html 7 May 2004 20:47:35 -0000 1.1 +++ readme.html 24 May 2004 17:33:17 -0000 1.2 @@ -15,10 +15,10 @@ one, which do not use PHPUnit. <h2>PHP</h2> -You need the php <a +You might want to run these from the php <a href="http://us3.php.net/features.commandline">command-line -interface</a>. It was experimental as of PHP 4.2.0, default as of PHP +interface</a>. It was experimental as of PHP 4.2.0 (php-cli), default as of PHP 4.3.0. -You also need the 'pear' executable. +You also need the 'pear' executable to install or update the required pear libraries. <h2>PHPUnit</h2> Index: test.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/tests/unit/test.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -2 -b -p -d -r1.1 -r1.2 --- test.php 7 May 2004 20:47:35 -0000 1.1 +++ test.php 24 May 2004 17:33:17 -0000 1.2 @@ -1,5 +1,5 @@ -#! /usr/local/bin/php -Cq -<?php +<?php // #! /usr/local/bin/php -Cq /* Copyright (C) 2004, Dan Frankowski <dfr...@cs...> + * Copyright (C) 2004, Reini Urban <ru...@x-...> * * This file is part of PhpWiki. @@ -25,4 +25,5 @@ * You must have PEAR's PHPUnit package <http://pear.php.net/package/PHPUnit>. * These tests are unrelated to test/maketest.pl, which do not use PHPUnit. + * These tests run from the command-line as well as from the browser. */ @@ -34,7 +35,9 @@ +$cur_dir = getcwd(); # Add root dir to the path -$rootdir = getcwd() . '/../../'; -ini_set('include_path', ini_get('include_path') . (substr(PHP_OS,0,3) == 'WIN' ? ';' : ':') . $rootdir); +$rootdir = $cur_dir . '/../../'; +$ini_sep = substr(PHP_OS,0,3) == 'WIN' ? ';' : ':'; +ini_set('include_path', ini_get('include_path') . $ini_sep . $rootdir); # This quiets a warning in config.php @@ -42,7 +45,6 @@ $HTTP_SERVER_VARS['REMOTE_ADDR'] = '127. # Other needed files -require_once 'index.php'; -require_once 'lib/stdlib.php'; -require_once 'lib/config.php'; // Needed for $WikiNameRegExp +require_once $rootdir.'index.php'; +require_once $rootdir.'lib/stdlib.php'; # Show lots of detail when an assert() in the code fails @@ -59,27 +61,65 @@ $foo = assert_options( ASSERT_CALLBACK, #require_once( 'lib/WikiDB/backend/cvs.php' ); $db_params = array(); -$db_params['directory'] = getcwd() . '/testbox'; +$db_params['directory'] = $cur_dir . '/.testbox'; $db_params['dbtype'] = 'file'; # Mock objects to allow tests to run -require_once( 'lib/WikiDB.php' ); -class MockRequest { +require_once($rootdir.'lib/Request.php'); +require_once($rootdir.'lib/WikiDB.php'); +if (ENABLE_USER_NEW) + require_once($rootdir."lib/WikiUserNew.php"); +else + require_once($rootdir."lib/WikiUser.php"); +require_once($rootdir."lib/WikiGroup.php"); +require_once($rootdir."lib/PagePerm.php"); + +class MockRequest extends Request { function MockRequest(&$dbparams) { + global $Theme, $request; $this->_dbi = WikiDB::open(&$dbparams); + $this->_args = array('pagename' => 'HomePage','action' => 'browse'); + $this->Request(); } - function addArg($arg, $value) { - $this->args[$arg] = $value; + function setArg($arg, $value) { + $this->_args[$arg] = $value; } function getArg($arg) { - return $this->args[$arg]; + return $this->_args[$arg]; } - function getDbh() { return $this->_dbi; } + function getUser () { + if (isset($this->_user)) + return $this->_user; + else + return $GLOBALS['ForbiddenUser']; + } + function getPage ($pagename = false) { + if (!isset($this->_dbi)) + $this->getDbh(); + if (!$pagename) + $pagename = $this->getArg('pagename'); + return $this->_dbi->getPage($pagename); + } + function getPrefs () { + return $this->_prefs; + } + function getPref ($key) { + if (isset($this->_prefs)) + return $this->_prefs->get($key); + } } $request = new MockRequest($db_params); +if (ENABLE_USER_NEW) + $request->_user = WikiUser('AnonUser'); +else { + $request->_user = new WikiUser($request, 'AnonUser'); + $request->_prefs = $request->_user->getPreferences(); +} +include_once("themes/" . THEME . "/themeinfo.php"); + #################################################################### # @@ -90,13 +130,23 @@ $request = new MockRequest($db_params); # Test files require_once ('PHPUnit.php'); -# lib/config.php might do a cwd() -require_once (dirname(__FILE__).'/lib/InlineParserTest.php'); +if (isset($HTTP_SERVER_VARS['REQUEST_METHOD'])) + echo "<pre>\n"; print "Run tests ..\n"; + +# lib/config.php might do a cwd() +require_once (dirname(__FILE__).'/lib/InlineParserTest.php'); $suite = new PHPUnit_TestSuite("InlineParserTest"); $result = PHPUnit::run($suite); +echo $result -> toString(); +require_once (dirname(__FILE__).'/lib/HtmlParserTest.php'); +$suite = new PHPUnit_TestSuite("HtmlParserTest"); +$result = PHPUnit::run($suite); echo $result -> toString(); +if (isset($HTTP_SERVER_VARS['REQUEST_METHOD'])) + echo "</pre>\n"; + // (c-file-style: "gnu") // Local Variables: |