1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-14 12:52:08 +02:00

[task/phpunit-xml] Use phpunit.xml for test suite

PHPBB3-9967
This commit is contained in:
Igor Wiedler 2011-01-03 22:21:54 +01:00
parent c54683be8c
commit 9a52bd0301
34 changed files with 80 additions and 506 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
*~
phpunit.xml
phpBB/cache/*.php
phpBB/config.php
phpBB/files/*

View File

@ -42,12 +42,11 @@
<delete dir="build/save" />
</target>
<target name="test">
<exec dir="tests"
command="phpunit --log-junit ../build/logs/phpunit.xml
--coverage-clover ../build/logs/clover.xml
--coverage-html ../build/coverage
phpbb_all_tests all_tests.php"
<target name="test" depends="clean,prepare">
<exec dir="."
command="phpunit --log-junit build/logs/phpunit.xml
--coverage-clover build/logs/clover.xml
--coverage-html build/coverage"
passthru="true" />

34
phpunit.xml.dist Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="true"
backupStaticAttributes="true"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="tests/bootstrap.php"
>
<testsuites>
<testsuite name="phpBB Test Suite">
<directory suffix=".php">./tests/</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
<directory>./tests/</directory>
<directory>./phpBB/</directory>
</blacklist>
<whitelist>
<directory>./phpBB/includes/db/</directory>
<file>./phpBB/includes/utf/utf_tools.php</file>
<file>./phpBB/includes/functions.php</file>
<file>./phpBB/includes/functions_content.php</file>
<file>./phpBB/includes/session.php</file>
<file>./phpBB/includes/template.php</file>
</whitelist>
</filter>
</phpunit>

View File

@ -7,7 +7,7 @@ Prerequisites
PHPUnit
-------
phpBB unit tests use PHPUnit framework. Version 3.3 or better is required
phpBB unit tests use PHPUnit framework. Version 3.5 or better is required
to run the tests. PHPUnit prefers to be installed via PEAR; refer to
http://www.phpunit.de/ for more information.
@ -41,14 +41,14 @@ will run phpunit with the same parameters as in the shown test_config.php file:
$ PHPBB_TEST_DBMS='mysqli' PHPBB_TEST_DBHOST='localhost' \
PHPBB_TEST_DBNAME='database' PHPBB_TEST_DBUSER='user' \
PHPBB_TEST_DBPASSWD='password' phpunit all_tests.php
PHPBB_TEST_DBPASSWD='password' phpunit
Running
=======
Once the prerequisites are installed, run the tests from tests directory:
Once the prerequisites are installed, run the tests from the project root directory (above phpBB):
$ phpunit all_tests.php
$ phpunit
More Information
================

View File

@ -1,69 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
error_reporting(E_ALL);
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'utf/all_tests.php';
require_once 'request/all_tests.php';
require_once 'security/all_tests.php';
require_once 'template/all_tests.php';
require_once 'text_processing/all_tests.php';
require_once 'dbal/all_tests.php';
require_once 'regex/all_tests.php';
require_once 'network/all_tests.php';
require_once 'random/all_tests.php';
// exclude the test directory from code coverage reports
if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0') >= 0)
{
PHP_CodeCoverage_Filter::getInstance()->addDirectoryToBlacklist('./');
}
else
{
PHPUnit_Util_Filter::addDirectoryToFilter('./');
}
class phpbb_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB');
$suite->addTest(phpbb_utf_all_tests::suite());
$suite->addTest(phpbb_request_all_tests::suite());
$suite->addTest(phpbb_security_all_tests::suite());
$suite->addTest(phpbb_template_all_tests::suite());
$suite->addTest(phpbb_text_processing_all_tests::suite());
$suite->addTest(phpbb_dbal_all_tests::suite());
$suite->addTest(phpbb_regex_all_tests::suite());
$suite->addTest(phpbb_network_all_tests::suite());
$suite->addTest(phpbb_random_all_tests::suite());
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_all_tests::main')
{
phpbb_all_tests::main();
}

View File

@ -8,7 +8,7 @@
*/
define('IN_PHPBB', true);
$phpbb_root_path = '../phpBB/';
$phpbb_root_path = 'phpBB/';
$phpEx = 'php';
$table_prefix = '';
@ -25,19 +25,6 @@ else
require_once $phpbb_root_path . 'includes/constants.php';
// require at least PHPUnit 3.3.0
require_once 'PHPUnit/Runner/Version.php';
if (version_compare(PHPUnit_Runner_Version::id(), '3.3.0', '<'))
{
trigger_error('PHPUnit >= 3.3.0 required');
}
if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0', '<'))
{
require_once 'PHPUnit/Framework.php';
require_once 'PHPUnit/Extensions/Database/TestCase.php';
}
require_once 'test_framework/phpbb_test_case_helpers.php';
require_once 'test_framework/phpbb_test_case.php';
require_once 'test_framework/phpbb_database_test_case.php';

View File

@ -1,42 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_dbal_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'dbal/select.php';
require_once 'dbal/write.php';
class phpbb_dbal_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Database Abstraction Layer');
$suite->addTestSuite('phpbb_dbal_select_test');
$suite->addTestSuite('phpbb_dbal_write_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_dbal_all_tests::main')
{
phpbb_dbal_all_tests::main();
}

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_dbal_select_test extends phpbb_database_test_case
{

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_dbal_write_test extends phpbb_database_test_case
{

View File

@ -1,40 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_network_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'network/checkdnsrr.php';
class phpbb_network_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Network Functions');
$suite->addTestSuite('phpbb_network_checkdnsrr_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_network_all_tests::main')
{
phpbb_network_all_tests::main();
}

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_network_checkdnsrr_test extends phpbb_test_case
{

View File

@ -1,40 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_random_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'random/gen_rand_string.php';
class phpbb_random_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Random Functions');
$suite->addTestSuite('phpbb_random_gen_rand_string_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_random_all_tests::main')
{
phpbb_random_all_tests::main();
}

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_random_gen_rand_string_test extends phpbb_test_case
{

View File

@ -1,46 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_regex_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'regex/email.php';
require_once 'regex/ipv4.php';
require_once 'regex/ipv6.php';
require_once 'regex/url.php';
class phpbb_regex_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Regular Expressions');
$suite->addTestSuite('phpbb_regex_email_test');
$suite->addTestSuite('phpbb_regex_ipv4_test');
$suite->addTestSuite('phpbb_regex_ipv6_test');
$suite->addTestSuite('phpbb_regex_url_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_regex_all_tests::main')
{
phpbb_regex_all_tests::main();
}

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_regex_email_test extends phpbb_test_case
{

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_regex_ipv4_test extends phpbb_test_case
{

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_regex_ipv6_test extends phpbb_test_case
{

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_regex_url_test extends phpbb_test_case
{

View File

@ -1,41 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_request_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'request/request_var.php';
class phpbb_request_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Request Parameter Handling');
$suite->addTestSuite('phpbb_request_request_var_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_request_all_tests::main')
{
phpbb_request_all_tests::main();
}

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
class phpbb_request_request_var_test extends phpbb_test_case
{

View File

@ -7,18 +7,7 @@
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_security_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'security/extract_current_page.php';
require_once 'security/redirect.php';
class phpbb_security_all_tests extends PHPUnit_Framework_TestSuite
abstract class phpbb_security_test_base extends phpbb_test_case
{
/**
* Set up the required user object and server variables for the suites
@ -62,25 +51,4 @@ class phpbb_security_all_tests extends PHPUnit_Framework_TestSuite
global $user;
$user = NULL;
}
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
// I bet there is a better method calling this... :)
$suite = new phpbb_security_all_tests('phpBB Security Fixes');
$suite->addTestSuite('phpbb_security_extract_current_page_test');
$suite->addTestSuite('phpbb_security_redirect_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_security_all_tests::main')
{
phpbb_security_all_tests::main();
}

View File

@ -7,12 +7,12 @@
*
*/
require_once 'test_framework/framework.php';
require_once __DIR__ . '/base.php';
require_once '../phpBB/includes/functions.php';
require_once '../phpBB/includes/session.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/session.php';
class phpbb_security_extract_current_page_test extends phpbb_test_case
class phpbb_security_extract_current_page_test extends phpbb_security_test_base
{
public static function security_variables()
{

View File

@ -7,12 +7,12 @@
*
*/
require_once 'test_framework/framework.php';
require_once __DIR__ . '/base.php';
require_once '../phpBB/includes/functions.php';
require_once '../phpBB/includes/session.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/session.php';
class phpbb_security_redirect_test extends phpbb_test_case
class phpbb_security_redirect_test extends phpbb_security_test_base
{
public static function provider()
{
@ -22,13 +22,15 @@ class phpbb_security_redirect_test extends phpbb_test_case
array('bad://localhost/phpBB/index.php', 'Tried to redirect to potentially insecure url.', false),
array('http://www.otherdomain.com/somescript.php', false, 'http://localhost/phpBB'),
array("http://localhost/phpBB/memberlist.php\n\rConnection: close", 'Tried to redirect to potentially insecure url.', false),
array('javascript:test', false, 'http://localhost/phpBB/../tests/javascript:test'),
array('javascript:test', false, 'http://localhost/phpBB/../javascript:test'),
array('http://localhost/phpBB/index.php;url=', 'Tried to redirect to potentially insecure url.', false),
);
}
protected function setUp()
{
parent::setUp();
$GLOBALS['config'] = array(
'force_server_vars' => '0',
);

View File

@ -1,40 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_template_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'template/template.php';
class phpbb_template_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Template Engine');
$suite->addTestSuite('phpbb_template_template_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_template_all_tests::main')
{
phpbb_template_all_tests::main();
}

View File

@ -7,9 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/template.php';
require_once __DIR__ . '/../../phpBB/includes/template.php';
class phpbb_template_template_test extends phpbb_test_case
{

View File

@ -1,3 +0,0 @@
<?php
echo "testing included php";

View File

@ -0,0 +1,3 @@
<?php
// extension is .php.inc so PHPUnit ignores it
echo "testing included php";

View File

@ -1 +1 @@
<!-- INCLUDEPHP ../templates/_dummy_include.php -->
<!-- INCLUDEPHP ../templates/_dummy_include.php.inc -->

View File

@ -96,9 +96,9 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
'dbpasswd' => isset($_SERVER['PHPBB_TEST_DBPASSWD']) ? $_SERVER['PHPBB_TEST_DBPASSWD'] : '',
);
}
else if (file_exists('test_config.php'))
else if (file_exists(__DIR__ . '/../test_config.php'))
{
include('test_config.php');
include(__DIR__ . '/../test_config.php');
return array(
'dbms' => $dbms,
@ -114,7 +114,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
// Silently use sqlite
return array(
'dbms' => 'sqlite',
'dbhost' => 'phpbb_unit_tests.sqlite2', // filename
'dbhost' => __DIR__ . '/../phpbb_unit_tests.sqlite2', // filename
'dbport' => '',
'dbname' => '',
'dbuser' => '',
@ -325,7 +325,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
}
}
$sql = $this->split_sql_file(file_get_contents("../phpBB/install/schemas/{$dbms['SCHEMA']}_schema.sql"), $config['dbms']);
$sql = $this->split_sql_file(file_get_contents(__DIR__ . "/../../phpBB/install/schemas/{$dbms['SCHEMA']}_schema.sql"), $config['dbms']);
foreach ($sql as $query)
{
@ -361,7 +361,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
$config = $this->get_database_config();
require_once '../phpBB/includes/db/' . $config['dbms'] . '.php';
require_once __DIR__ . '/../../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']);

View File

@ -1,41 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_text_processing_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'text_processing/make_clickable.php';
class phpbb_text_processing_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Text Processing Tools');
$suite->addTestSuite('phpbb_text_processing_make_clickable_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_text_processing_all_tests::main')
{
phpbb_text_processing_all_tests::main();
}

View File

@ -7,10 +7,8 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
require_once '../phpBB/includes/functions_content.php';
require_once __DIR__ . '/../../phpBB/includes/functions.php';
require_once __DIR__ . '/../../phpBB/includes/functions_content.php';
class phpbb_text_processing_make_clickable_test extends phpbb_test_case
{

View File

@ -1,43 +0,0 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('PHPUnit_MAIN_METHOD'))
{
define('PHPUnit_MAIN_METHOD', 'phpbb_utf_all_tests::main');
}
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
require_once 'utf/utf8_wordwrap_test.php';
require_once 'utf/utf8_clean_string_test.php';
class phpbb_utf_all_tests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Unicode Transformation Format');
$suite->addTestSuite('phpbb_utf_utf8_wordwrap_test');
$suite->addTestSuite('phpbb_utf_utf8_clean_string_test');
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'phpbb_utf_all_tests::main')
{
phpbb_utf_all_tests::main();
}

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/utf/utf_tools.php';
require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php';
class phpbb_utf_utf8_clean_string_test extends phpbb_test_case
{

View File

@ -7,8 +7,7 @@
*
*/
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/utf/utf_tools.php';
require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php';
class phpbb_utf_utf8_wordwrap_test extends phpbb_test_case
{