mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 22:28:51 +00:00
Merge PR #1119 branch 'p/ticket/10491' into develop-olympus
* p/ticket/10491: [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.
This commit is contained in:
commit
a4e4841082
1 changed files with 29 additions and 25 deletions
|
@ -35,13 +35,30 @@ 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();
|
||||||
|
|
||||||
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
|
||||||
|
@ -110,28 +127,14 @@ 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 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();
|
|
||||||
|
|
||||||
if (!isset(self::$config['phpbb_functional_url']))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$config['table_prefix'] = 'phpbb_';
|
self::$config['table_prefix'] = 'phpbb_';
|
||||||
$this->recreate_database(self::$config);
|
self::recreate_database(self::$config);
|
||||||
|
|
||||||
if (file_exists($phpbb_root_path . "config.$phpEx"))
|
if (file_exists($phpbb_root_path . "config.$phpEx"))
|
||||||
{
|
{
|
||||||
|
@ -176,19 +179,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'], array(), true, true));
|
file_put_contents($phpbb_root_path . "config.$phpEx", phpbb_create_config_file_data($data, self::$config['dbms'], array(), 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;
|
||||||
|
|
||||||
|
@ -207,7 +211,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