Use new testing framework, weeeeh

This commit is contained in:
Joas Schilling
2014-06-10 23:29:48 +02:00
parent 9ee1edcb8c
commit fe33179197
33 changed files with 122 additions and 4141 deletions

View File

@@ -1,30 +0,0 @@
<?php
/**
*
* @package phpBB Gallery Testing
* @copyright (c) 2013 nickvergessen
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
define('IN_PHPBB', true);
$phpbb_root_path = './../../../';
$phpEx = 'php';
require_once $phpbb_root_path . 'includes/startup.' . $phpEx;
$table_prefix = 'phpbb_';
require_once $phpbb_root_path . 'includes/constants.' . $phpEx;
require_once $phpbb_root_path . 'phpbb/class_loader.' . $phpEx;
$phpbb_class_loader_mock = new \phpbb\class_loader('phpbb_mock_', $phpbb_root_path . '../tests/mock/', "php");
$phpbb_class_loader_mock->register();
$phpbb_class_loader_ext = new \phpbb\class_loader('\\', $phpbb_root_path . 'ext/', "php");
$phpbb_class_loader_ext->register();
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', $phpbb_root_path . 'phpbb/', "php");
$phpbb_class_loader->register();
require_once $phpbb_root_path . '../tests/test_framework/phpbb_test_case_helpers.' . $phpEx;
require_once $phpbb_root_path . '../tests/test_framework/phpbb_test_case.' . $phpEx;
require_once $phpbb_root_path . '../tests/test_framework/phpbb_database_test_case.' . $phpEx;
require_once $phpbb_root_path . '../tests/test_framework/phpbb_database_test_connection_manager.' . $phpEx;
require_once $phpbb_root_path . '../tests/test_framework/phpbb_functional_test_case.' . $phpEx;

View File

@@ -15,9 +15,9 @@ class phpbb_functional_portal_acp_test extends \board3\portal\tests\testframewor
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function acp_pages_data()
@@ -34,7 +34,7 @@ class phpbb_functional_portal_acp_test extends \board3\portal\tests\testframewor
*/
public function test_acp_pages($mode)
{
$crawler = self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=' . $mode . '&sid=' . $this->sid);
self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=' . $mode . '&sid=' . $this->sid);
}
public function test_move_first_module_up()
@@ -44,7 +44,7 @@ class phpbb_functional_portal_acp_test extends \board3\portal\tests\testframewor
preg_match('/module_id=(?:([0-9]{1,3}))/', $module_link, $output);
$this->assertNotEmpty($output[1]);
$module_id = $output[1];
$crawler = self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=modules&module_id=' . $module_id . '&action=move_up&sid=' . $this->sid);
self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=modules&module_id=' . $module_id . '&action=move_up&sid=' . $this->sid);
}
public function test_move_last_module_down()
@@ -54,7 +54,7 @@ class phpbb_functional_portal_acp_test extends \board3\portal\tests\testframewor
preg_match('/module_id=(?:([0-9]{1,3}))/', $module_link, $output);
$this->assertNotEmpty($output[1]);
$module_id = $output[1];
$crawler = self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=modules&module_id=' . $module_id . '&action=move_down&sid=' . $this->sid);
self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=modules&module_id=' . $module_id . '&action=move_down&sid=' . $this->sid);
}
public function test_delete_module()
@@ -73,6 +73,6 @@ class phpbb_functional_portal_acp_test extends \board3\portal\tests\testframewor
$crawler = self::request('GET', 'adm/index.php?i=\board3\portal\acp\portal_module&mode=modules&add[center]=true&sid=' . $this->sid);
$form = $crawler->selectButton('submit')->form();
$form->setValues(array('module_classname' => $module_name));
$crawler = self::submit($form);
self::submit($form);
}
}

View File

@@ -15,9 +15,9 @@ class phpbb_functional_portal_announcement_test extends \board3\portal\tests\tes
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function test_with_announce()
@@ -30,7 +30,7 @@ class phpbb_functional_portal_announcement_test extends \board3\portal\tests\tes
if (isset($data))
{
// no errors should appear on portal
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}
@@ -44,7 +44,7 @@ class phpbb_functional_portal_announcement_test extends \board3\portal\tests\tes
if (isset($data))
{
// no errors should appear on portal
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}
@@ -54,6 +54,6 @@ class phpbb_functional_portal_announcement_test extends \board3\portal\tests\tes
public function test_after_announce()
{
$this->logout();
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}

View File

@@ -15,9 +15,9 @@ class phpbb_functional_portal_birthday_list_test extends \board3\portal\tests\te
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function test_setup_birthday()
@@ -26,7 +26,7 @@ class phpbb_functional_portal_birthday_list_test extends \board3\portal\tests\te
$uid = $this->create_user('portal_birthday_user');
if (!$uid)
{
$this->markIncomplete('Unable to create portal_user');
$this->markTestIncomplete('Unable to create portal_user');
}
$this->login('portal_birthday_user');
$crawler = self::request('GET', 'ucp.php?i=ucp_profile&mode=profile_info&sid=' . $this->sid);
@@ -36,7 +36,7 @@ class phpbb_functional_portal_birthday_list_test extends \board3\portal\tests\te
'bday_month' => date('m', time() + 86400*2),
'bday_year' => date('Y', time() + 86400*2),
));
$crawler = self::submit($form);
self::submit($form);
}
/**

View File

@@ -15,13 +15,13 @@ class phpbb_functional_portal_no_error_test extends \board3\portal\tests\testfra
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function test_vanilla_board()
{
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}

View File

@@ -15,9 +15,9 @@ class phpbb_functional_portal_redirect_test extends \board3\portal\tests\testfra
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function test_redirect()

View File

@@ -15,9 +15,9 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function test_vanilla_board()
@@ -26,10 +26,10 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
$uid = $this->create_user('portal_user');
if (!$uid)
{
$this->markIncomplete('Unable to create portal_user');
$this->markTestIncomplete('Unable to create portal_user');
}
$this->login('portal_user');
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
public function test_with_announce()
@@ -42,7 +42,7 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
if (isset($data))
{
// no errors should appear on portal
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}
@@ -56,7 +56,7 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
if (isset($data))
{
// no errors should appear on portal
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}
@@ -66,7 +66,7 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
public function test_after_announce()
{
$this->logout();
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
public function test_with_poll()
@@ -82,10 +82,10 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
$crawler = self::request('GET', 'app.php/portal');
$form = $crawler->selectButton('Submit vote')->form();
$form->setValues(array('vote_id' => array(1)));
$crawler = self::submit($form);
self::submit($form);
// no errors should appear on portal
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
}
@@ -95,7 +95,7 @@ class phpbb_functional_portal_visit_registered_test extends \board3\portal\tests
public function test_after_poll()
{
$this->logout();
$crawler = self::request('GET', 'app.php/portal');
self::request('GET', 'app.php/portal');
}
public function test_whois_online_legend()

View File

@@ -15,9 +15,9 @@ class phpbb_functional_portal_vote_poll_test extends \board3\portal\tests\testfr
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->enable_board3_portal_ext();
}
public function test_with_poll()

View File

@@ -1,5 +0,0 @@
# DO NOT EDIT THIS FILE, IT IS GENERATED
#
# To change the contents of this file, edit
# phpBB/develop/create_schema_files.php and
# run it.

View File

@@ -1,8 +0,0 @@
/*
* DO NOT EDIT THIS FILE, IT IS GENERATED
*
* To change the contents of this file, edit
* phpBB/develop/create_schema_files.php and
* run it.
*/

View File

@@ -1,5 +0,0 @@
# DO NOT EDIT THIS FILE, IT IS GENERATED
#
# To change the contents of this file, edit
# phpBB/develop/create_schema_files.php and
# run it.

View File

@@ -1,5 +0,0 @@
# DO NOT EDIT THIS FILE, IT IS GENERATED
#
# To change the contents of this file, edit
# phpBB/develop/create_schema_files.php and
# run it.

View File

@@ -1,45 +0,0 @@
/*
* DO NOT EDIT THIS FILE, IT IS GENERATED
*
* To change the contents of this file, edit
* phpBB/develop/create_schema_files.php and
* run it.
*/
/*
This first section is optional, however its probably the best method
of running phpBB on Oracle. If you already have a tablespace and user created
for phpBB you can leave this section commented out!
The first set of statements create a phpBB tablespace and a phpBB user,
make sure you change the password of the phpBB user before you run this script!!
*/
/*
CREATE TABLESPACE "PHPBB"
LOGGING
DATAFILE 'E:\ORACLE\ORADATA\LOCAL\PHPBB.ora'
SIZE 10M
AUTOEXTEND ON NEXT 10M
MAXSIZE 100M;
CREATE USER "PHPBB"
PROFILE "DEFAULT"
IDENTIFIED BY "phpbb_password"
DEFAULT TABLESPACE "PHPBB"
QUOTA UNLIMITED ON "PHPBB"
ACCOUNT UNLOCK;
GRANT ANALYZE ANY TO "PHPBB";
GRANT CREATE SEQUENCE TO "PHPBB";
GRANT CREATE SESSION TO "PHPBB";
GRANT CREATE TABLE TO "PHPBB";
GRANT CREATE TRIGGER TO "PHPBB";
GRANT CREATE VIEW TO "PHPBB";
GRANT "CONNECT" TO "PHPBB";
COMMIT;
DISCONNECT;
CONNECT phpbb/phpbb_password;
*/

View File

@@ -1,87 +0,0 @@
/*
* DO NOT EDIT THIS FILE, IT IS GENERATED
*
* To change the contents of this file, edit
* phpBB/develop/create_schema_files.php and
* run it.
*/
BEGIN;
/*
Domain definition
*/
CREATE DOMAIN varchar_ci AS varchar(255) NOT NULL DEFAULT ''::character varying;
/*
Operation Functions
*/
CREATE FUNCTION _varchar_ci_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) = LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_not_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) != LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_less_than(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) < LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_less_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) <= LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_greater_than(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) > LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_greater_equals(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) >= LOWER($2)' LANGUAGE SQL STRICT;
/*
Operators
*/
CREATE OPERATOR <(
PROCEDURE = _varchar_ci_less_than,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <=(
PROCEDURE = _varchar_ci_less_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR >(
PROCEDURE = _varchar_ci_greater_than,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR >=(
PROCEDURE = _varchar_ci_greater_equals,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <>(
PROCEDURE = _varchar_ci_not_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR =(
PROCEDURE = _varchar_ci_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES,
MERGES,
SORT1= <);
COMMIT;

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
# DO NOT EDIT THIS FILE, IT IS GENERATED
#
# To change the contents of this file, edit
# phpBB/develop/create_schema_files.php and
# run it.

View File

@@ -1,7 +0,0 @@
<?php
$dbms = 'phpbb\\db\\driver\\mysqli';
$dbhost = 'localhost';
$dbport = '';
$dbname = 'phpbb_test';
$dbuser = 'root';
$dbpasswd = '';

View File

@@ -11,6 +11,11 @@ namespace board3\portal\tests\testframework;
abstract class database_test_case extends \phpbb_database_test_case
{
static protected function setup_extensions()
{
return array('board3/portal');
}
protected $db;
public function setUp()
@@ -19,31 +24,4 @@ abstract class database_test_case extends \phpbb_database_test_case
global $db;
$db = $this->db = $this->new_dbal();
}
protected function create_connection_manager($config)
{
return new \board3\portal\tests\testframework\database_test_connection_manager($config);
}
public function get_database_config()
{
$config = \board3\portal\tests\testframework\test_case_helpers::get_test_config();
if (!isset($config['dbms']))
{
$this->markTestSkipped('Missing test_config.php: See first error.');
}
return $config;
}
public function get_test_case_helpers()
{
if (!$this->test_case_helpers)
{
$this->test_case_helpers = new \board3\portal\tests\testframework\test_case_helpers($this);
}
return $this->test_case_helpers;
}
}

View File

@@ -1,22 +0,0 @@
<?php
/**
*
* @package phpBB Gallery Testing
* @copyright (c) 2013 nickvergessen
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace board3\portal\tests\testframework;
class database_test_connection_manager extends \phpbb_database_test_connection_manager
{
public function load_schema($db)
{
$this->ensure_connected(__METHOD__);
$directory = dirname(__FILE__) . '/../schemas/';
$this->load_schema_from_file($directory, $db);
}
}

View File

@@ -11,55 +11,8 @@ namespace board3\portal\tests\testframework;
abstract class functional_test_case extends \phpbb_functional_test_case
{
protected $portal_enabled = false;
public function enable_board3_portal_ext()
static protected function setup_extensions()
{
$enable_portal = false;
if ($this->portal_enabled === true || $this->check_if_enabled())
{
return;
}
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid);
$disabled_extensions = $crawler->filter('tr.ext_disabled')->extract(array('_text'));
foreach ($disabled_extensions as $extension)
{
if (strpos($extension, 'Board3 Portal') !== false)
{
$enable_portal = true;
}
}
if ($enable_portal)
{
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=board3%2fportal&sid=' . $this->sid);
$form = $crawler->selectButton('Enable')->form();
$crawler = self::submit($form);
$this->assertContains('The extension was enabled successfully', $crawler->text());
$this->portal_enabled = true;
$this->set_enabled();
}
}
protected function check_if_enabled()
{
$this->db = $this->get_db();
$sql = "SELECT config_value FROM phpbb_config WHERE config_name = 'b3p_ext_enabled'";
$result = $this->db->sql_query($sql);
$enabled = $this->db->sql_fetchfield('config_value');
$this->db->sql_freeresult($result);
return $enabled;
}
protected function set_enabled()
{
$this->db = $this->get_db();
$sql = "INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('b3p_ext_enabled', 1, 1)";
$this->db->sql_query($sql);
return array('board3/portal');
}
}

View File

@@ -11,13 +11,4 @@ namespace board3\portal\tests\testframework;
abstract class test_case extends \phpbb_test_case
{
public function get_test_case_helpers()
{
if (!$this->test_case_helpers)
{
$this->test_case_helpers = new \board3\portal\tests\testframework\test_case_helpers($this);
}
return $this->test_case_helpers;
}
}

View File

@@ -1,116 +0,0 @@
<?php
/**
*
* @package phpBB Gallery Testing
* @copyright (c) 2013 nickvergessen
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace board3\portal\tests\testframework;
class test_case_helpers extends \phpbb_test_case_helpers
{
/**
* Copied from phpbb_test_case_helpers::get_test_config() to fix some paths
*/
static public function get_test_config()
{
$config = array();
if (extension_loaded('sqlite') && version_compare(\PHPUnit_Runner_Version::id(), '3.4.15', '>='))
{
$config = array_merge($config, array(
'dbms' => 'phpbb_db_driver_sqlite',
'dbhost' => dirname(__FILE__) . '/../phpbb_unit_tests.sqlite2', // filename
'dbport' => '',
'dbname' => '',
'dbuser' => '',
'dbpasswd' => '',
));
}
if (isset($_SERVER['PHPBB_TEST_CONFIG']))
{
// Could be an absolute path
$test_config = $_SERVER['PHPBB_TEST_CONFIG'];
}
else
{
$test_config = dirname(__FILE__) . '/../test_config.php';
}
if (file_exists($test_config))
{
include($test_config);
if (!function_exists('phpbb_convert_30_dbms_to_31'))
{
global $phpbb_root_path;
require_once $phpbb_root_path . 'includes/functions.php';
}
$config = array_merge($config, array(
'dbms' => phpbb_convert_30_dbms_to_31($dbms),
'dbhost' => $dbhost,
'dbport' => $dbport,
'dbname' => $dbname,
'dbuser' => $dbuser,
'dbpasswd' => $dbpasswd,
'custom_dsn' => isset($custom_dsn) ? $custom_dsn : '',
));
if (isset($phpbb_functional_url))
{
$config['phpbb_functional_url'] = $phpbb_functional_url;
}
if (isset($phpbb_redis_host))
{
$config['redis_host'] = $phpbb_redis_host;
}
if (isset($phpbb_redis_port))
{
$config['redis_port'] = $phpbb_redis_port;
}
}
if (isset($_SERVER['PHPBB_TEST_DBMS']))
{
if (!function_exists('phpbb_convert_30_dbms_to_31'))
{
global $phpbb_root_path;
require_once $phpbb_root_path . 'includes/functions.php';
}
$config = array_merge($config, array(
'dbms' => isset($_SERVER['PHPBB_TEST_DBMS']) ? phpbb_convert_30_dbms_to_31($_SERVER['PHPBB_TEST_DBMS']) : '',
'dbhost' => isset($_SERVER['PHPBB_TEST_DBHOST']) ? $_SERVER['PHPBB_TEST_DBHOST'] : '',
'dbport' => isset($_SERVER['PHPBB_TEST_DBPORT']) ? $_SERVER['PHPBB_TEST_DBPORT'] : '',
'dbname' => isset($_SERVER['PHPBB_TEST_DBNAME']) ? $_SERVER['PHPBB_TEST_DBNAME'] : '',
'dbuser' => isset($_SERVER['PHPBB_TEST_DBUSER']) ? $_SERVER['PHPBB_TEST_DBUSER'] : '',
'dbpasswd' => isset($_SERVER['PHPBB_TEST_DBPASSWD']) ? $_SERVER['PHPBB_TEST_DBPASSWD'] : '',
'custom_dsn' => isset($_SERVER['PHPBB_TEST_CUSTOM_DSN']) ? $_SERVER['PHPBB_TEST_CUSTOM_DSN'] : '',
));
}
if (isset($_SERVER['PHPBB_FUNCTIONAL_URL']))
{
$config = array_merge($config, array(
'phpbb_functional_url' => isset($_SERVER['PHPBB_FUNCTIONAL_URL']) ? $_SERVER['PHPBB_FUNCTIONAL_URL'] : '',
));
}
if (isset($_SERVER['PHPBB_TEST_REDIS_HOST']))
{
$config['redis_host'] = $_SERVER['PHPBB_TEST_REDIS_HOST'];
}
if (isset($_SERVER['PHPBB_TEST_REDIS_PORT']))
{
$config['redis_port'] = $_SERVER['PHPBB_TEST_REDIS_PORT'];
}
return $config;
}
}

View File

@@ -15,7 +15,8 @@ class phpbb_functions_check_file_src_test extends \board3\portal\tests\testframe
public function setUp()
{
parent::setUp();
global $db, $phpbb_root_path, $phpEx, $user;
global $user;
$user = new phpbb_mock_user();
}

View File

@@ -9,16 +9,22 @@
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
class phpbb_functions_simple_test extends PHPUnit_Framework_TestCase
class phpbb_functions_simple_test extends \board3\portal\tests\testframework\test_case
{
protected $path_helper;
protected $calendar;
public function setUp()
{
parent::setUp();
global $phpbb_root_path;
$this->path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
new phpbb_mock_request()
),
new \phpbb\filesystem(),
$this->phpbb_root_path,
$phpbb_root_path,
'php'
);
$this->calendar = new \board3\portal\modules\calendar(array(), null, null, null, dirname(__FILE__) . '/../../../', 'php', null, $this->path_helper);