1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-05 07:07:51 +02:00
php-phpbb/tests/test_framework/phpbb_test_case_helpers.php
Nils Adermann 2bbfa9c29f [feature/dbal-tests] Only output the missing config error message once.
The error message was also not properly escaping the variables, thus
producing an incorrect example configuration file.
2010-04-01 19:15:34 +02:00

98 lines
2.1 KiB
PHP

<?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);
}
}