mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Merge PR #1119 branch 'develop-olympus' into develop
While merging into develop, also move self::$config['table_prefix'] initialization into setup before class from install_board, as install_board is only called to install the board and not for each test case. * develop-olympus: [ticket/10491] Make recreate_database static. [ticket/10491] Install board once per test run. [ticket/10491] Move board installation into setup before class. [ticket/10491] Set up functional tests sensibly. Conflicts: tests/test_framework/phpbb_functional_test_case.php
This commit is contained in:
commit
0916dc14ef
1 changed files with 35 additions and 26 deletions
|
@ -34,13 +34,36 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||||
static protected $config = array();
|
static protected $config = array();
|
||||||
static protected $already_installed = false;
|
static protected $already_installed = false;
|
||||||
|
|
||||||
public function setUp()
|
static public function setUpBeforeClass()
|
||||||
{
|
{
|
||||||
|
parent::setUpBeforeClass();
|
||||||
|
|
||||||
|
self::$config = phpbb_test_case_helpers::get_test_config();
|
||||||
|
|
||||||
|
// Important: this is used both for installation and by
|
||||||
|
// test cases for querying the tables.
|
||||||
|
// Therefore table prefix must be set before a board is
|
||||||
|
// installed, and also before each test case is run.
|
||||||
|
self::$config['table_prefix'] = 'phpbb_';
|
||||||
|
|
||||||
if (!isset(self::$config['phpbb_functional_url']))
|
if (!isset(self::$config['phpbb_functional_url']))
|
||||||
{
|
{
|
||||||
$this->markTestSkipped('phpbb_functional_url was not set in test_config and wasn\'t set as PHPBB_FUNCTIONAL_URL environment variable either.');
|
self::markTestSkipped('phpbb_functional_url was not set in test_config and wasn\'t set as PHPBB_FUNCTIONAL_URL environment variable either.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!self::$already_installed)
|
||||||
|
{
|
||||||
|
self::install_board();
|
||||||
|
self::$already_installed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->bootstrap();
|
||||||
|
|
||||||
$this->cookieJar = new CookieJar;
|
$this->cookieJar = new CookieJar;
|
||||||
$this->client = new Goutte\Client(array(), null, $this->cookieJar);
|
$this->client = new Goutte\Client(array(), null, $this->cookieJar);
|
||||||
// Reset the curl handle because it is 0 at this point and not a valid
|
// Reset the curl handle because it is 0 at this point and not a valid
|
||||||
|
@ -73,13 +96,6 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||||
$this->backupStaticAttributesBlacklist += array(
|
$this->backupStaticAttributesBlacklist += array(
|
||||||
'phpbb_functional_test_case' => array('config', 'already_installed'),
|
'phpbb_functional_test_case' => array('config', 'already_installed'),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!static::$already_installed)
|
|
||||||
{
|
|
||||||
$this->install_board();
|
|
||||||
$this->bootstrap();
|
|
||||||
static::$already_installed = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_db()
|
protected function get_db()
|
||||||
|
@ -137,19 +153,11 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||||
return $this->extension_manager;
|
return $this->extension_manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function install_board()
|
static protected function install_board()
|
||||||
{
|
{
|
||||||
global $phpbb_root_path, $phpEx;
|
global $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
self::$config = phpbb_test_case_helpers::get_test_config();
|
self::recreate_database(self::$config);
|
||||||
|
|
||||||
if (!isset(self::$config['phpbb_functional_url']))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$config['table_prefix'] = 'phpbb_';
|
|
||||||
$this->recreate_database(self::$config);
|
|
||||||
|
|
||||||
if (file_exists($phpbb_root_path . "config.$phpEx"))
|
if (file_exists($phpbb_root_path . "config.$phpEx"))
|
||||||
{
|
{
|
||||||
|
@ -194,19 +202,20 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||||
));
|
));
|
||||||
// end data
|
// end data
|
||||||
|
|
||||||
$content = $this->do_request('install');
|
$content = self::do_request('install');
|
||||||
$this->assertContains('Welcome to Installation', $content);
|
self::assertNotSame(false, $content);
|
||||||
|
self::assertContains('Welcome to Installation', $content);
|
||||||
|
|
||||||
$this->do_request('create_table', $data);
|
self::do_request('create_table', $data);
|
||||||
|
|
||||||
$this->do_request('config_file', $data);
|
self::do_request('config_file', $data);
|
||||||
file_put_contents($phpbb_root_path . "config.$phpEx", phpbb_create_config_file_data($data, self::$config['dbms'], true, true));
|
file_put_contents($phpbb_root_path . "config.$phpEx", phpbb_create_config_file_data($data, self::$config['dbms'], true, true));
|
||||||
|
|
||||||
$this->do_request('final', $data);
|
self::do_request('final', $data);
|
||||||
copy($phpbb_root_path . "config.$phpEx", $phpbb_root_path . "config_test.$phpEx");
|
copy($phpbb_root_path . "config.$phpEx", $phpbb_root_path . "config_test.$phpEx");
|
||||||
}
|
}
|
||||||
|
|
||||||
private function do_request($sub, $post_data = null)
|
static private function do_request($sub, $post_data = null)
|
||||||
{
|
{
|
||||||
$context = null;
|
$context = null;
|
||||||
|
|
||||||
|
@ -225,7 +234,7 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||||
return file_get_contents(self::$config['phpbb_functional_url'] . 'install/index.php?mode=install&sub=' . $sub, false, $context);
|
return file_get_contents(self::$config['phpbb_functional_url'] . 'install/index.php?mode=install&sub=' . $sub, false, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function recreate_database($config)
|
static private function recreate_database($config)
|
||||||
{
|
{
|
||||||
$db_conn_mgr = new phpbb_database_test_connection_manager($config);
|
$db_conn_mgr = new phpbb_database_test_connection_manager($config);
|
||||||
$db_conn_mgr->recreate_db();
|
$db_conn_mgr->recreate_db();
|
||||||
|
|
Loading…
Add table
Reference in a new issue