From 0ffe494edd274647ba6694648dba070c63e55d89 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Fri, 14 Oct 2011 16:05:35 +0200 Subject: [feature/functional-tests] Configure functional tests through config file The functional tests now also use the test database PHPBB3-10414 --- tests/test_framework/phpbb_database_test_case.php | 42 +++-------------------- 1 file changed, 5 insertions(+), 37 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index e1b368dcea..b1484450b8 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -40,46 +40,14 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test public function get_database_config() { - if (isset($_SERVER['PHPBB_TEST_DBMS'])) - { - return array( - 'dbms' => isset($_SERVER['PHPBB_TEST_DBMS']) ? $_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'] : '', - ); - } - else if (file_exists(dirname(__FILE__) . '/../test_config.php')) - { - include(dirname(__FILE__) . '/../test_config.php'); - - return array( - 'dbms' => $dbms, - 'dbhost' => $dbhost, - 'dbport' => $dbport, - 'dbname' => $dbname, - 'dbuser' => $dbuser, - 'dbpasswd' => $dbpasswd, - ); - } - else if (extension_loaded('sqlite') && version_compare(PHPUnit_Runner_Version::id(), '3.4.15', '>=')) - { - // Silently use sqlite - return array( - 'dbms' => 'sqlite', - 'dbhost' => dirname(__FILE__) . '/../phpbb_unit_tests.sqlite2', // filename - 'dbport' => '', - 'dbname' => '', - 'dbuser' => '', - 'dbpasswd' => '', - ); - } - else + $config = phpbb_test_case_helpers::get_test_config(); + + if (!isset($config['dbms'])) { $this->markTestSkipped('Missing test_config.php: See first error.'); } + + return $config; } public function getConnection() -- cgit v1.2.1 From 90a957ad26f52e26c3979464c5ac15b1fd0fcc28 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sat, 21 Jul 2012 17:43:43 +0200 Subject: [ticket/11015] Make DBAL classes autoloadable PHPBB3-11015 This allows us to just create the object without having to include the driver first. However, it also means that users must specify the full class name in config.php --- tests/test_framework/phpbb_database_test_case.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index bb86df0ef0..abc3c8d7a3 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -33,7 +33,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $db_config = $this->get_database_config(); // Firebird requires table and column names to be uppercase - if ($db_config['dbms'] == 'firebird') + if ($db_config['dbms'] == 'phpbb_db_driver_firebird') { $xml_data = file_get_contents($path); $xml_data = preg_replace_callback('/(?:())/', 'phpbb_database_test_case::to_upper', $xml_data); @@ -100,9 +100,8 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $config = $this->get_database_config(); - require_once dirname(__FILE__) . '/../../phpBB/includes/db/' . $config['dbms'] . '.php'; - $dbal = 'dbal_' . $config['dbms']; - $db = new $dbal(); + $dbms = $config['dbms']; + $db = new $dbms(); $db->sql_connect($config['dbhost'], $config['dbuser'], $config['dbpasswd'], $config['dbname'], $config['dbport']); return $db; -- cgit v1.2.1 From 3ed4fc437e2a88638d705b8f4cab23eacf39fe3c Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Tue, 27 Nov 2012 08:08:34 -0500 Subject: [ticket/11174] Move assertion definition to base class. PHPBB3-11174 --- tests/test_framework/phpbb_database_test_case.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 75a3c0944b..514619687a 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -141,4 +141,20 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test { return $matches[1] . strtoupper($matches[2]) . $matches[3]; } + + public function assert_array_content_equals($one, $two) + { + // http://stackoverflow.com/questions/3838288/phpunit-assert-two-arrays-are-equal-but-order-of-elements-not-important + // but one array_diff is not enough! + if (sizeof(array_diff($one, $two)) || sizeof(array_diff($two, $one))) + { + // get a nice error message + $this->assertEquals($one, $two); + } + else + { + // increase assertion count + $this->assertTrue(true); + } + } } -- cgit v1.2.1 From b95fdacdd378877d277e261465da73deb06e50da Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Tue, 10 Sep 2013 14:01:09 +0200 Subject: [ticket/11700] Move all recent code to namespaces PHPBB3-11700 --- tests/test_framework/phpbb_database_test_case.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index c72ea5f765..1a9edcb181 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -82,7 +82,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $db_config = $this->get_database_config(); // Firebird requires table and column names to be uppercase - if ($db_config['dbms'] == 'phpbb_db_driver_firebird') + if ($db_config['dbms'] == '\phpbb\db\driver\firebird') { $xml_data = file_get_contents($path); $xml_data = preg_replace_callback('/(?:(
))/', 'phpbb_database_test_case::to_upper', $xml_data); -- cgit v1.2.1 From 005c5118cf89c6b09d4ff1b6e4139235e86bcdfb Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Mon, 16 Sep 2013 04:01:18 +0200 Subject: [ticket/11700] travis has hardcoded driver class names without namespaces PHPBB3-11700 --- tests/test_framework/phpbb_database_test_case.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 1a9edcb181..4c2e9ff600 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -82,7 +82,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $db_config = $this->get_database_config(); // Firebird requires table and column names to be uppercase - if ($db_config['dbms'] == '\phpbb\db\driver\firebird') + if ($db_config['dbms'] == 'phpbb\db\driver\firebird') { $xml_data = file_get_contents($path); $xml_data = preg_replace_callback('/(?:(
))/', 'phpbb_database_test_case::to_upper', $xml_data); -- cgit v1.2.1 From ba139297b5076881763b55d33fed90b48a051b6b Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 28 Mar 2014 23:12:54 +0100 Subject: [ticket/11459] Correctly set up the database from schema in unit tests PHPBB3-11459 --- tests/test_framework/phpbb_database_test_case.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 4c2e9ff600..aacdb1bef4 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -138,7 +138,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test if (!self::$already_connected) { - $manager->load_schema(); + $manager->load_schema($this->new_dbal()); self::$already_connected = true; } -- cgit v1.2.1 From a759704b39fc1c1353f865a633759b1369589b67 Mon Sep 17 00:00:00 2001 From: Yuriy Rusko Date: Tue, 27 May 2014 20:18:06 +0200 Subject: [ticket/12594] Remove @package tags and update file headers PHPBB3-12594 --- tests/test_framework/phpbb_database_test_case.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index aacdb1bef4..60ac68e7b8 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -1,9 +1,13 @@ +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. * */ -- cgit v1.2.1 From 997028a0ecf1df761363b061acf6ae220dd3479f Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sat, 3 May 2014 01:17:51 +0200 Subject: [ticket/12483] Allow to setup extensions before database and functional tests PHPBB3-12483 --- tests/test_framework/phpbb_database_test_case.php | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 60ac68e7b8..157982ff3c 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -21,6 +21,12 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test protected $fixture_xml_data; + static protected $schema_file; + + static protected $phpbb_schema_copy; + + static protected $install_schema_file; + public function __construct($name = NULL, array $data = array(), $dataName = '') { parent::__construct($name, $data, $dataName); @@ -38,6 +44,54 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $this->db_connections = array(); } + /** + * @return array List of extensions that should be set up + */ + static protected function setup_extensions() + { + return array(); + } + + static public function setUpBeforeClass() + { + $schema_md5 = md5(serialize(static::setup_extensions())); + + self::$schema_file = __DIR__ . '/schemas/' . $schema_md5 . '.json'; + self::$phpbb_schema_copy = __DIR__ . '/schemas/schema_phpbb_copy.json'; + self::$install_schema_file = __DIR__ . '/../../../../../install/schemas/schema.json'; + + if (!file_exists(self::$schema_file)) + { + global $phpbb_root_path, $phpEx, $table_prefix; + + $finder = new \phpbb\extension\finder(new phpbb_testcase_extension_manager(static::setup_extensions()), new \phpbb\filesystem(), $phpbb_root_path); + $classes = $finder->core_path('phpbb/') + ->core_directory('db/migration/data') + ->extension_directory('migrations') + ->get_classes(); + + $db = new \phpbb\db\driver\sqlite(); + $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); + $schema_data = $schema_generator->get_schema(); + + $fp = fopen(self::$schema_file, 'wb'); + fwrite($fp, json_encode($schema_data)); + fclose($fp); + } + + copy(self::$install_schema_file, self::$phpbb_schema_copy); + copy(self::$schema_file, self::$install_schema_file); + + parent::setUpBeforeClass(); + } + + static public function tearDownAfterClass() + { + copy(self::$phpbb_schema_copy, self::$install_schema_file); + + parent::tearDownAfterClass(); + } + protected function tearDown() { parent::tearDown(); -- cgit v1.2.1 From 5bae2911a232648dcc355153180f9bb7ace64d83 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sat, 3 May 2014 11:48:52 +0200 Subject: [ticket/12483] Move schema files into tmp/ and only copy them when needed PHPBB3-12483 --- tests/test_framework/phpbb_database_test_case.php | 52 +++++++++++++---------- 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 157982ff3c..c704516968 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -54,40 +54,48 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test static public function setUpBeforeClass() { - $schema_md5 = md5(serialize(static::setup_extensions())); + $setup_extensions = static::setup_extensions(); + self::$schema_file = ''; + if (!empty($setup_extensions)) + { + $schema_md5 = md5(serialize($setup_extensions)); - self::$schema_file = __DIR__ . '/schemas/' . $schema_md5 . '.json'; - self::$phpbb_schema_copy = __DIR__ . '/schemas/schema_phpbb_copy.json'; - self::$install_schema_file = __DIR__ . '/../../../../../install/schemas/schema.json'; + self::$schema_file = __DIR__ . '/../tmp/' . $schema_md5 . '.json'; + self::$phpbb_schema_copy = __DIR__ . '/../tmp/schema_phpbb_copy.json'; + self::$install_schema_file = __DIR__ . '/../../phpBB/install/schemas/schema.json'; - if (!file_exists(self::$schema_file)) - { - global $phpbb_root_path, $phpEx, $table_prefix; + if (!file_exists(self::$schema_file)) + { + global $phpbb_root_path, $phpEx, $table_prefix; - $finder = new \phpbb\extension\finder(new phpbb_testcase_extension_manager(static::setup_extensions()), new \phpbb\filesystem(), $phpbb_root_path); - $classes = $finder->core_path('phpbb/') - ->core_directory('db/migration/data') - ->extension_directory('migrations') - ->get_classes(); + $finder = new \phpbb\extension\finder(new phpbb_testcase_extension_manager(static::setup_extensions()), new \phpbb\filesystem(), $phpbb_root_path); + $classes = $finder->core_path('phpbb/') + ->core_directory('db/migration/data') + ->extension_directory('migrations') + ->get_classes(); - $db = new \phpbb\db\driver\sqlite(); - $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); - $schema_data = $schema_generator->get_schema(); + $db = new \phpbb\db\driver\sqlite(); + $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); + $schema_data = $schema_generator->get_schema(); - $fp = fopen(self::$schema_file, 'wb'); - fwrite($fp, json_encode($schema_data)); - fclose($fp); - } + $fp = fopen(self::$schema_file, 'wb'); + fwrite($fp, json_encode($schema_data)); + fclose($fp); + } - copy(self::$install_schema_file, self::$phpbb_schema_copy); - copy(self::$schema_file, self::$install_schema_file); + copy(self::$install_schema_file, self::$phpbb_schema_copy); + copy(self::$schema_file, self::$install_schema_file); + } parent::setUpBeforeClass(); } static public function tearDownAfterClass() { - copy(self::$phpbb_schema_copy, self::$install_schema_file); + if (self::$schema_file !== '') + { + copy(self::$phpbb_schema_copy, self::$install_schema_file); + } parent::tearDownAfterClass(); } -- cgit v1.2.1 From 13217fe3ff391ab958b0d0c6568366875c7d198e Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sat, 3 May 2014 11:58:12 +0200 Subject: [ticket/12483] Require the extension manager class PHPBB3-12483 --- tests/test_framework/phpbb_database_test_case.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index c704516968..d8533a3d15 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -11,6 +11,8 @@ * */ +require_once dirname(__FILE__) . '/phpbb_testcase_extension_manager.php'; + abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_TestCase { static private $already_connected; -- cgit v1.2.1 From 18d145f38f0f512039a15f64e132b2607283af89 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 6 May 2014 15:23:55 +0200 Subject: [ticket/12483] Use file_put_contents() PHPBB3-12483 --- tests/test_framework/phpbb_database_test_case.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index d8533a3d15..ff55b3fc63 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -80,9 +80,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); $schema_data = $schema_generator->get_schema(); - $fp = fopen(self::$schema_file, 'wb'); - fwrite($fp, json_encode($schema_data)); - fclose($fp); + file_put_contents(self::$schema_file, json_encode($schema_data)); } copy(self::$install_schema_file, self::$phpbb_schema_copy); -- cgit v1.2.1 From d0766a23218fb028aefaef231b6e42034f69bc8f Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 10 Jun 2014 19:38:24 +0200 Subject: [ticket/12483] Fix finder usage when generating the schema.json file PHPBB3-12483 --- tests/test_framework/phpbb_database_test_case.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index ff55b3fc63..049bd022d7 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/phpbb_testcase_extension_manager.php'; - abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_TestCase { static private $already_connected; @@ -70,9 +68,10 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test { global $phpbb_root_path, $phpEx, $table_prefix; - $finder = new \phpbb\extension\finder(new phpbb_testcase_extension_manager(static::setup_extensions()), new \phpbb\filesystem(), $phpbb_root_path); + $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); $classes = $finder->core_path('phpbb/') - ->core_directory('db/migration/data') + ->core_directory('/db/migration/data') + ->set_extensions($setup_extensions) ->extension_directory('migrations') ->get_classes(); -- cgit v1.2.1 From 38c2d42304047d9f7f1457c37bc5496825e14ae3 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 10 Jun 2014 19:44:06 +0200 Subject: [ticket/12483] Remove unused globals PHPBB3-12483 --- tests/test_framework/phpbb_database_test_case.php | 2 -- 1 file changed, 2 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 049bd022d7..05281b1d71 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -212,8 +212,6 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test public function new_dbal() { - global $phpbb_root_path, $phpEx; - $config = $this->get_database_config(); $db = new $config['dbms'](); -- cgit v1.2.1 From be54b64893c391719199bacbd081801c31ab1021 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Thu, 12 Jun 2014 14:57:32 -0700 Subject: [ticket/12697] Delete cached extension schema.json files after testing PHPBB3-12697 --- tests/test_framework/phpbb_database_test_case.php | 1 + 1 file changed, 1 insertion(+) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 05281b1d71..1f3a564205 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -94,6 +94,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test if (self::$schema_file !== '') { copy(self::$phpbb_schema_copy, self::$install_schema_file); + unlink(self::$schema_file); } parent::tearDownAfterClass(); -- cgit v1.2.1 From 04164affe672be6feea676fd05cf9761bf2e477a Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 20 Jun 2014 12:35:42 +0200 Subject: [ticket/12747] Drop support for Firebird PHPBB3-12747 --- tests/test_framework/phpbb_database_test_case.php | 19 ------------------- 1 file changed, 19 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 1f3a564205..4bbc6b6736 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -145,25 +145,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test public function createXMLDataSet($path) { - $db_config = $this->get_database_config(); - - // Firebird requires table and column names to be uppercase - if ($db_config['dbms'] == 'phpbb\db\driver\firebird') - { - $xml_data = file_get_contents($path); - $xml_data = preg_replace_callback('/(?:(
))/', 'phpbb_database_test_case::to_upper', $xml_data); - $xml_data = preg_replace_callback('/(?:())([a-z_]+)(?:(<\/column>))/', 'phpbb_database_test_case::to_upper', $xml_data); - - $new_fixture = tmpfile(); - fwrite($new_fixture, $xml_data); - fseek($new_fixture, 0); - - $meta_data = stream_get_meta_data($new_fixture); - $path = $meta_data['uri']; - } - $this->fixture_xml_data = parent::createXMLDataSet($path); - return $this->fixture_xml_data; } @@ -246,7 +228,6 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test /** * Converts a match in the middle of a string to uppercase. - * This is necessary for transforming the fixture information for Firebird tests * * @param $matches The array of matches from a regular expression * -- cgit v1.2.1 From dc7ed58bf5be6b3228389f414634f0a4116c6278 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sun, 22 Jun 2014 18:47:23 +0200 Subject: [ticket/12747] Remove some methods which are not used anymore PHPBB3-12747 --- tests/test_framework/phpbb_database_test_case.php | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 4bbc6b6736..46276bcfcb 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -226,18 +226,6 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test return new phpbb_database_test_connection_manager($config); } - /** - * Converts a match in the middle of a string to uppercase. - * - * @param $matches The array of matches from a regular expression - * - * @return string The string with the specified match converted to uppercase - */ - static public function to_upper($matches) - { - return $matches[1] . strtoupper($matches[2]) . $matches[3]; - } - public function assert_array_content_equals($one, $two) { // http://stackoverflow.com/questions/3838288/phpunit-assert-two-arrays-are-equal-but-order-of-elements-not-important -- cgit v1.2.1 From 180f9bf4faedbbc216402c8493258314c7f8ff7d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 17 Sep 2014 23:33:26 +0200 Subject: [ticket/12963] Correctly load migration files from migration/ in tests as well PHPBB3-12963 --- tests/test_framework/phpbb_database_test_case.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 46276bcfcb..15ab976b02 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -72,9 +72,16 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $classes = $finder->core_path('phpbb/') ->core_directory('/db/migration/data') ->set_extensions($setup_extensions) - ->extension_directory('migrations') + ->extension_directory('migration') ->get_classes(); + // @deprecated 3.1.0-RC4 (To be removed: 3.2.0) + $classes_deprecated = $finder + ->extension_directory('/migrations') + ->get_classes(); + + $classes = array_merge($classes, $classes_deprecated); + $db = new \phpbb\db\driver\sqlite(); $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); $schema_data = $schema_generator->get_schema(); -- cgit v1.2.1 From 0d1f0c07fe3485f18ea23dbc7fc481ea625e4ab7 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Thu, 18 Sep 2014 02:04:47 +0200 Subject: [ticket/12963] Fix the migration's finder for the tests (path, new instance) PHPBB3-12963 --- tests/test_framework/phpbb_database_test_case.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 15ab976b02..6b19689b2f 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -70,13 +70,15 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); $classes = $finder->core_path('phpbb/') - ->core_directory('/db/migration/data') + ->core_directory('db/migration/data/') ->set_extensions($setup_extensions) - ->extension_directory('migration') + ->extension_directory('/migration') ->get_classes(); // @deprecated 3.1.0-RC4 (To be removed: 3.2.0) + $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); $classes_deprecated = $finder + ->set_extensions($setup_extensions) ->extension_directory('/migrations') ->get_classes(); -- cgit v1.2.1 From c220fa89a1bf5652df6512ad78eb9ba550fe465e Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 18 Sep 2014 10:42:21 +0200 Subject: [ticket/12963] Revert back to "migrations" folder name for extensions The issues that can be created with the name change are just too much PHPBB3-12963 --- tests/test_framework/phpbb_database_test_case.php | 9 --------- 1 file changed, 9 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 6b19689b2f..0eeb52443c 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -71,19 +71,10 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); $classes = $finder->core_path('phpbb/') ->core_directory('db/migration/data/') - ->set_extensions($setup_extensions) - ->extension_directory('/migration') - ->get_classes(); - - // @deprecated 3.1.0-RC4 (To be removed: 3.2.0) - $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); - $classes_deprecated = $finder ->set_extensions($setup_extensions) ->extension_directory('/migrations') ->get_classes(); - $classes = array_merge($classes, $classes_deprecated); - $db = new \phpbb\db\driver\sqlite(); $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); $schema_data = $schema_generator->get_schema(); -- cgit v1.2.1 From 1da5c41ab354d610d1eb3d4ba5c35c557d61ede3 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 18 Sep 2014 11:07:19 +0200 Subject: [ticket/12963] Always use core_path and core_directory() PHPBB3-12963 --- tests/test_framework/phpbb_database_test_case.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 0eeb52443c..9dbb7150f1 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -69,8 +69,7 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test global $phpbb_root_path, $phpEx, $table_prefix; $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); - $classes = $finder->core_path('phpbb/') - ->core_directory('db/migration/data/') + $classes = $finder->core_path('phpbb/db/migration/data/') ->set_extensions($setup_extensions) ->extension_directory('/migrations') ->get_classes(); -- cgit v1.2.1 From 4fe95d6870ab1700f104b16223791933c8e50ff9 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 7 Oct 2014 14:53:03 +0200 Subject: [ticket/13137] Generate the schema when the schema.json file is not available PHPBB3-13137 --- tests/test_framework/phpbb_database_test_case.php | 45 +++++++++++------------ 1 file changed, 22 insertions(+), 23 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 9dbb7150f1..26989fa345 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -55,47 +55,46 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test static public function setUpBeforeClass() { $setup_extensions = static::setup_extensions(); - self::$schema_file = ''; - if (!empty($setup_extensions)) - { - $schema_md5 = md5(serialize($setup_extensions)); - self::$schema_file = __DIR__ . '/../tmp/' . $schema_md5 . '.json'; - self::$phpbb_schema_copy = __DIR__ . '/../tmp/schema_phpbb_copy.json'; - self::$install_schema_file = __DIR__ . '/../../phpBB/install/schemas/schema.json'; + $schema_md5 = md5(serialize($setup_extensions)); + self::$schema_file = __DIR__ . '/../tmp/' . $schema_md5 . '.json'; + self::$install_schema_file = __DIR__ . '/../../phpBB/install/schemas/schema.json'; - if (!file_exists(self::$schema_file)) - { - global $phpbb_root_path, $phpEx, $table_prefix; + if (!file_exists(self::$schema_file)) + { + global $phpbb_root_path, $phpEx, $table_prefix; + $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); - $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); + if (!empty($setup_extensions)) + { $classes = $finder->core_path('phpbb/db/migration/data/') ->set_extensions($setup_extensions) ->extension_directory('/migrations') ->get_classes(); - $db = new \phpbb\db\driver\sqlite(); - $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); - $schema_data = $schema_generator->get_schema(); + } + else + { - file_put_contents(self::$schema_file, json_encode($schema_data)); + $classes = $finder->core_path('phpbb/db/migration/data/') + ->get_classes(); } - copy(self::$install_schema_file, self::$phpbb_schema_copy); - copy(self::$schema_file, self::$install_schema_file); + $db = new \phpbb\db\driver\sqlite(); + $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); + $schema_data = $schema_generator->get_schema(); + + file_put_contents(self::$schema_file, json_encode($schema_data)); } + copy(self::$schema_file, self::$install_schema_file); + parent::setUpBeforeClass(); } static public function tearDownAfterClass() { - if (self::$schema_file !== '') - { - copy(self::$phpbb_schema_copy, self::$install_schema_file); - unlink(self::$schema_file); - } - + unlink(self::$install_schema_file); parent::tearDownAfterClass(); } -- cgit v1.2.1 From f6fc8c08a44fe126b56522383ebf1125884bd89b Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 8 Oct 2014 20:13:51 +0200 Subject: [ticket/13161] Avoid problems when running tests with different migrations PHPBB3-13161 --- tests/test_framework/phpbb_database_test_case.php | 36 ++++++++++------------- 1 file changed, 15 insertions(+), 21 deletions(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index 26989fa345..e817845ccf 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -54,37 +54,31 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test static public function setUpBeforeClass() { + global $phpbb_root_path, $phpEx; + $setup_extensions = static::setup_extensions(); - $schema_md5 = md5(serialize($setup_extensions)); - self::$schema_file = __DIR__ . '/../tmp/' . $schema_md5 . '.json'; + $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); + $finder->core_path('phpbb/db/migration/data/'); + if (!empty($setup_extensions)) + { + $finder->set_extensions($setup_extensions) + ->extension_directory('/migrations'); + } + $classes = $finder->get_classes(); + + $schema_sha1 = sha1(serialize($classes)); + self::$schema_file = __DIR__ . '/../tmp/' . $schema_sha1 . '.json'; self::$install_schema_file = __DIR__ . '/../../phpBB/install/schemas/schema.json'; if (!file_exists(self::$schema_file)) { - global $phpbb_root_path, $phpEx, $table_prefix; - $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx); - if (!empty($setup_extensions)) - { - $classes = $finder->core_path('phpbb/db/migration/data/') - ->set_extensions($setup_extensions) - ->extension_directory('/migrations') - ->get_classes(); - - } - else - { - - $classes = $finder->core_path('phpbb/db/migration/data/') - ->get_classes(); - } + global $table_prefix; $db = new \phpbb\db\driver\sqlite(); $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $db, new \phpbb\db\tools($db, true), $phpbb_root_path, $phpEx, $table_prefix); - $schema_data = $schema_generator->get_schema(); - - file_put_contents(self::$schema_file, json_encode($schema_data)); + file_put_contents(self::$schema_file, json_encode($schema_generator->get_schema())); } copy(self::$schema_file, self::$install_schema_file); -- cgit v1.2.1 From 1a04d15d4d481f681cdfc65f3af7a42073b40e84 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 8 Oct 2014 20:14:44 +0200 Subject: [ticket/13161] Check whether the schema exists, before deleting it PHPBB3-13161 --- tests/test_framework/phpbb_database_test_case.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tests/test_framework/phpbb_database_test_case.php') diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index e817845ccf..fc1a3632f4 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -88,7 +88,11 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test static public function tearDownAfterClass() { - unlink(self::$install_schema_file); + if (file_exists(self::$install_schema_file)) + { + unlink(self::$install_schema_file); + } + parent::tearDownAfterClass(); } -- cgit v1.2.1