<?php /** * * @package testing * @copyright (c) 2008 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ class phpbb_test_case_helpers { protected $expectedTriggerError = false; protected $test_case; public function __construct($test_case) { $this->test_case = $test_case; } public function get_database_config() { static $show_error = true; if (!file_exists('test_config.php')) { if ($show_error) { $show_error = false; } else { $this->test_case->markTestSkipped('Missing test_config.php: See first error.'); return; } trigger_error("You have to create a test_config.php like this: \"<?php \$dbms = 'mysqli'; \$dbhost = 'localhost'; \$dbport = ''; \$dbname = 'database'; \$dbuser = 'user'; \$dbpasswd = 'password'; \" NOTE: The database is dropped and recreated with the phpbb-db-schema! Do NOT specify a database with important data.", E_USER_ERROR); } include('test_config.php'); return array( 'dbms' => $dbms, 'dbhost' => $dbhost, 'dbport' => $dbport, 'dbname' => $dbname, 'dbuser' => $dbuser, 'dbpasswd' => $dbpasswd, ); } public function new_dbal() { global $phpbb_root_path, $phpEx; $config = $this->get_database_config(); require_once '../phpBB/includes/db/' . $config['dbms'] . '.php'; $dbal = 'dbal_' . $config['dbms']; $db = new $dbal(); $db->sql_connect($config['dbhost'], $config['dbuser'], $config['dbpasswd'], $config['dbname'], $config['dbport']); return $db; } public function setExpectedTriggerError($errno, $message = '') { $exceptionName = ''; switch ($errno) { case E_NOTICE: case E_STRICT: PHPUnit_Framework_Error_Notice::$enabled = true; $exceptionName = 'PHPUnit_Framework_Error_Notice'; break; case E_WARNING: PHPUnit_Framework_Error_Warning::$enabled = true; $exceptionName = 'PHPUnit_Framework_Error_Warning'; break; default: $exceptionName = 'PHPUnit_Framework_Error'; break; } $this->expectedTriggerError = true; $this->test_case->setExpectedException($exceptionName, (string) $message, $errno); } }