diff options
author | Oleg Pudeyev <oleg@bsdpower.com> | 2012-12-13 03:24:44 -0500 |
---|---|---|
committer | Oleg Pudeyev <oleg@bsdpower.com> | 2012-12-13 03:39:47 -0500 |
commit | 0916dc14efaa36073cdc9783401b818ecc0716cc (patch) | |
tree | c90fb71f1ee80a3d91f167f0f68b3a940c2e920b | |
parent | 5da78cae0950c60fd02480d896fe44ee29b33d6d (diff) | |
parent | a4e48410821e2569a4561e06f1627cb9dbce76ca (diff) | |
download | forums-0916dc14efaa36073cdc9783401b818ecc0716cc.tar forums-0916dc14efaa36073cdc9783401b818ecc0716cc.tar.gz forums-0916dc14efaa36073cdc9783401b818ecc0716cc.tar.bz2 forums-0916dc14efaa36073cdc9783401b818ecc0716cc.tar.xz forums-0916dc14efaa36073cdc9783401b818ecc0716cc.zip |
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
-rw-r--r-- | tests/test_framework/phpbb_functional_test_case.php | 61 |
1 files changed, 35 insertions, 26 deletions
diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index 6536ad8807..9097854bd4 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -34,13 +34,36 @@ class phpbb_functional_test_case extends phpbb_test_case static protected $config = array(); 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'])) { - $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->client = new Goutte\Client(array(), null, $this->cookieJar); // 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( '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() @@ -137,19 +153,11 @@ class phpbb_functional_test_case extends phpbb_test_case return $this->extension_manager; } - protected function install_board() + static protected function install_board() { 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_'; - $this->recreate_database(self::$config); + self::recreate_database(self::$config); if (file_exists($phpbb_root_path . "config.$phpEx")) { @@ -194,19 +202,20 @@ class phpbb_functional_test_case extends phpbb_test_case )); // end data - $content = $this->do_request('install'); - $this->assertContains('Welcome to Installation', $content); + $content = self::do_request('install'); + 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)); - $this->do_request('final', $data); + self::do_request('final', $data); 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; @@ -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); } - private function recreate_database($config) + static private function recreate_database($config) { $db_conn_mgr = new phpbb_database_test_connection_manager($config); $db_conn_mgr->recreate_db(); |