diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bbcode/parser_test.php | 3 | ||||
-rw-r--r-- | tests/bbcode/url_bbcode_test.php | 3 | ||||
-rw-r--r-- | tests/dbal/migration/revert_table.php | 39 | ||||
-rw-r--r-- | tests/dbal/migration/revert_table_with_dependency.php | 52 | ||||
-rw-r--r-- | tests/dbal/migrator_test.php | 45 | ||||
-rw-r--r-- | tests/event/dispatcher_test.php | 16 | ||||
-rw-r--r-- | tests/event/fixtures/event_migration.test | 30 | ||||
-rw-r--r-- | tests/event/php_exporter_test.php | 19 | ||||
-rw-r--r-- | tests/feed/attachments_base_test.php | 14 | ||||
-rw-r--r-- | tests/functions/make_clickable_email_test.php | 5 | ||||
-rw-r--r-- | tests/functions/make_clickable_test.php | 3 | ||||
-rw-r--r-- | tests/test_framework/phpbb_functional_test_case.php | 3 | ||||
-rw-r--r-- | tests/text_formatter/s9e/factory_test.php | 6 |
13 files changed, 230 insertions, 8 deletions
diff --git a/tests/bbcode/parser_test.php b/tests/bbcode/parser_test.php index 4e85737c4f..b569d371f1 100644 --- a/tests/bbcode/parser_test.php +++ b/tests/bbcode/parser_test.php @@ -249,9 +249,10 @@ class phpbb_bbcode_parser_test extends \phpbb_test_case $this->markTestIncomplete($incomplete); } - global $user, $request; + global $user, $request, $symfony_request; $user = new phpbb_mock_user; $request = new phpbb_mock_request; + $symfony_request = new \phpbb\symfony_request($request); $bbcode = new bbcode_firstpass(); $bbcode->message = $message; diff --git a/tests/bbcode/url_bbcode_test.php b/tests/bbcode/url_bbcode_test.php index 3f8ad6022f..f95970a6bb 100644 --- a/tests/bbcode/url_bbcode_test.php +++ b/tests/bbcode/url_bbcode_test.php @@ -52,9 +52,10 @@ class phpbb_url_bbcode_test extends phpbb_test_case */ public function test_url($description, $message, $expected) { - global $user, $request; + global $user, $request, $symfony_request; $user = new phpbb_mock_user; $request = new phpbb_mock_request; + $symfony_request = new \phpbb\symfony_request($request); $bbcode = new bbcode_firstpass(); $bbcode->message = $message; diff --git a/tests/dbal/migration/revert_table.php b/tests/dbal/migration/revert_table.php new file mode 100644 index 0000000000..162421be85 --- /dev/null +++ b/tests/dbal/migration/revert_table.php @@ -0,0 +1,39 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +class phpbb_dbal_migration_revert_table extends \phpbb\db\migration\migration +{ + function update_schema() + { + return array( + 'add_tables' => array( + 'phpbb_foobar' => array( + 'COLUMNS' => array( + 'module_id' => array('UINT:3', NULL, 'auto_increment'), + 'bar_column' => array('UINT', 1), + ), + 'PRIMARY_KEY' => 'module_id', + ), + ), + ); + } + + function revert_schema() + { + return array( + 'drop_tables' => array( + 'phpbb_foobar', + ), + ); + } +} diff --git a/tests/dbal/migration/revert_table_with_dependency.php b/tests/dbal/migration/revert_table_with_dependency.php new file mode 100644 index 0000000000..f26ad076e6 --- /dev/null +++ b/tests/dbal/migration/revert_table_with_dependency.php @@ -0,0 +1,52 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +class phpbb_dbal_migration_revert_table_with_dependency extends \phpbb\db\migration\migration +{ + static public function depends_on() + { + return array('phpbb_dbal_migration_revert_table'); + } + + function update_schema() + { + return array( + 'add_columns' => array( + 'phpbb_foobar' => array( + 'baz_column' => array('UINT', 1), + ), + ), + 'drop_columns' => array( + 'phpbb_foobar' => array( + 'bar_column', + ), + ), + ); + } + + function revert_schema() + { + return array( + 'add_columns' => array( + 'phpbb_foobar' => array( + 'bar_column' => array('UINT', 1), + ), + ), + 'drop_columns' => array( + 'phpbb_foobar' => array( + 'baz_column', + ), + ), + ); + } +} diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php index f7275a4bbe..372b2dbe1e 100644 --- a/tests/dbal/migrator_test.php +++ b/tests/dbal/migrator_test.php @@ -17,16 +17,26 @@ require_once dirname(__FILE__) . '/migration/if.php'; require_once dirname(__FILE__) . '/migration/recall.php'; require_once dirname(__FILE__) . '/migration/revert.php'; require_once dirname(__FILE__) . '/migration/revert_with_dependency.php'; +require_once dirname(__FILE__) . '/migration/revert_table.php'; +require_once dirname(__FILE__) . '/migration/revert_table_with_dependency.php'; require_once dirname(__FILE__) . '/migration/fail.php'; require_once dirname(__FILE__) . '/migration/installed.php'; require_once dirname(__FILE__) . '/migration/schema.php'; class phpbb_dbal_migrator_test extends phpbb_database_test_case { + /** @var \phpbb\db\driver\driver_interface */ protected $db; + + /** @var \phpbb\db\tools\tools_interface */ protected $db_tools; + + /** @var \phpbb\db\migrator */ protected $migrator; + /** @var \phpbb\config\config */ + protected $config; + public function getDataSet() { return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/migrator.xml'); @@ -241,6 +251,41 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case $this->assertEquals(1, $migrator_test_revert_counter, 'Revert did call custom function again'); } + public function test_revert_table() + { + // Make sure there are no other migrations in the db, this could cause issues + $this->db->sql_query("DELETE FROM phpbb_migrations"); + $this->migrator->load_migration_state(); + + $this->migrator->set_migrations(array('phpbb_dbal_migration_revert_table', 'phpbb_dbal_migration_revert_table_with_dependency')); + + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table')); + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table_with_dependency')); + + // Install the migration first + while (!$this->migrator->finished()) + { + $this->migrator->update(); + } + + $this->assertTrue($this->migrator->migration_state('phpbb_dbal_migration_revert_table') !== false); + $this->assertTrue($this->migrator->migration_state('phpbb_dbal_migration_revert_table_with_dependency') !== false); + + $this->assertTrue($this->db_tools->sql_column_exists('phpbb_foobar', 'baz_column')); + $this->assertFalse($this->db_tools->sql_column_exists('phpbb_foobar', 'bar_column')); + + // Revert migrations + while ($this->migrator->migration_state('phpbb_dbal_migration_revert_table') !== false) + { + $this->migrator->revert('phpbb_dbal_migration_revert_table'); + } + + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table')); + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table_with_dependency')); + + $this->assertFalse($this->db_tools->sql_table_exists('phpbb_foobar')); + } + public function test_fail() { $this->migrator->set_migrations(array('phpbb_dbal_migration_fail')); diff --git a/tests/event/dispatcher_test.php b/tests/event/dispatcher_test.php index 7bba5bf337..da28d24daa 100644 --- a/tests/event/dispatcher_test.php +++ b/tests/event/dispatcher_test.php @@ -29,5 +29,21 @@ class phpbb_event_dispatcher_test extends phpbb_test_case $result = $dispatcher->trigger_event('core.test_event', compact($vars)); $this->assertSame(array('foo' => 'foo2', 'bar' => 'bar2'), $result); + + // Test migrating events + $dispatcher->addListener('core.foo_br', function(\phpbb\event\data $event) { + $event['pi'] = '3.14159'; + }); + $dispatcher->addListener('core.foo_bar', function(\phpbb\event\data $event) { + $event['pi'] = '3.1'; + }); + + + $pi = '3'; + + $vars = array('pi'); + $result = $dispatcher->trigger_event(['core.foo_bar', 'core.foo_br'], compact($vars)); + + $this->assertSame(array('pi' => '3.14159'), $result); } } diff --git a/tests/event/fixtures/event_migration.test b/tests/event/fixtures/event_migration.test new file mode 100644 index 0000000000..b2df9f95df --- /dev/null +++ b/tests/event/fixtures/event_migration.test @@ -0,0 +1,30 @@ +<?php + + /** + * Modify pm and sender data before it is assigned to the template + * + * @event core.ucp_pm_view_message + * @var mixed id Active module category (can be int or string) + * @var string mode Active module + * @var int folder_id ID of the folder the message is in + * @var int msg_id ID of the private message + * @var array folder Array with data of user's message folders + * @var array message_row Array with message data + * @var array cp_row Array with senders custom profile field data + * @var array msg_data Template array with message data + * @var array user_info User data of the sender + * @since 3.1.0-a1 + * @changed 3.1.6-RC1 Added user_info into event + */ + $vars = array( + 'id', + 'mode', + 'folder_id', + 'msg_id', + 'folder', + 'message_row', + 'cp_row', + 'msg_data', + 'user_info', + ); + extract($phpbb_dispatcher->trigger_event(['core.ucp_pm_view_message', 'core.ucp_pm_view_messsage'], compact($vars))); diff --git a/tests/event/php_exporter_test.php b/tests/event/php_exporter_test.php index 692a57f93c..21dbb1e1d4 100644 --- a/tests/event/php_exporter_test.php +++ b/tests/event/php_exporter_test.php @@ -38,6 +38,18 @@ class phpbb_event_php_exporter_test extends phpbb_test_case ), ), array( + 'event_migration.test', + array( + 'core.ucp_pm_view_message' => array( + 'event' => 'core.ucp_pm_view_message', + 'file' => 'event_migration.test', + 'arguments' => array('cp_row', 'folder', 'folder_id', 'id', 'message_row', 'mode', 'msg_data', 'msg_id', 'user_info'), + 'since' => '3.1.0-a1', + 'description' => 'Modify pm and sender data before it is assigned to the template', + ), + ), + ), + array( 'extra_description.test', array( 'extra_description.dispatch' => array( @@ -240,6 +252,8 @@ class phpbb_event_php_exporter_test extends phpbb_test_case array("\t\$phpbb_dispatcher->dispatch('dispatch.one2.thr_ee4');", 'dispatch.one2.thr_ee4'), array("\$this->dispatcher->dispatch('dispatch.one2');", 'dispatch.one2'), array("\$phpbb_dispatcher->dispatch('dis_patch.one');", 'dis_patch.one'), + array("\$phpbb_dispatcher->dispatch(['dis_patch.one', 'dis_patch.one2']);", 'dis_patch.one'), + array("\$phpbb_dispatcher->dispatch(['dis_patch.one', 'dis_patch.one2', 'dis_patch.two3']);", 'dis_patch.one'), ); } @@ -259,6 +273,8 @@ class phpbb_event_php_exporter_test extends phpbb_test_case array("\$phpbb_dispatcher->dispatch('');"), array("\$phpbb_dispatcher->dispatch('dispatch.2one');"), array("\$phpbb_dispatcher->dispatch('dispatch');"), + array("\$phpbb_dispatcher->dispatch(['dispatch.one']);"), + array("\$phpbb_dispatcher->dispatch(array('dispatch.one', 'dispatch.one2'));"), ); } @@ -279,6 +295,8 @@ class phpbb_event_php_exporter_test extends phpbb_test_case array("\textract(\$phpbb_dispatcher->trigger_event('dispatch.one2.thr_ee4', compact(\$vars)));", 'dispatch.one2.thr_ee4'), array("extract(\$this->dispatcher->trigger_event('dispatch.one2', compact(\$vars)));", 'dispatch.one2'), array("extract(\$phpbb_dispatcher->trigger_event('dis_patch.one', compact(\$vars)));", 'dis_patch.one'), + array("extract(\$phpbb_dispatcher->trigger_event(['dis_patch.one', 'dis_patch.one2'], compact(\$vars)));", 'dis_patch.one'), + array("extract(\$phpbb_dispatcher->trigger_event(['dis_patch.one', 'dis_patch.one2', 'dis_patch.two3'], compact(\$vars)));", 'dis_patch.one'), ); } @@ -301,6 +319,7 @@ class phpbb_event_php_exporter_test extends phpbb_test_case array("extract(\$phpbb_dispatcher->trigger_event('dispatch.one', \$vars));"), array("extract(\$phpbb_dispatcher->trigger_event('dispatch.one', compact(\$var)));"), array("extract(\$phpbb_dispatcher->trigger_event('dispatch.one', compact(\$array)));"), + array("extract(\$phpbb_dispatcher->trigger_event(['dispatch.one'], compact(\$vars)));"), array("\$phpbb_dispatcher->trigger_event('dis_patch.one', compact(\$vars));", 'dis_patch.one'), ); } diff --git a/tests/feed/attachments_base_test.php b/tests/feed/attachments_base_test.php index dd432d13f5..573218be42 100644 --- a/tests/feed/attachments_base_test.php +++ b/tests/feed/attachments_base_test.php @@ -31,13 +31,25 @@ class phpbb_feed_attachments_base_test extends phpbb_database_test_case $this->filesystem = new \phpbb\filesystem(); $config = new \phpbb\config\config(array()); + $path_helper = new \phpbb\path_helper( + new \phpbb\symfony_request( + new phpbb_mock_request() + ), + $this->filesystem, + $this->getMock('\phpbb\request\request'), + $phpbb_root_path, + 'php' + ); $user = new \phpbb\user( new \phpbb\language\language( new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx) ), '\phpbb\datetime' ); - $feed_helper = new \phpbb\feed\helper($config, $user, $phpbb_root_path, $phpEx); + $container = new phpbb_mock_container_builder(); + $this->get_test_case_helpers()->set_s9e_services($container); + $container->set('feed.quote_helper', new \phpbb\feed\quote_helper($user, $phpbb_root_path, 'php')); + $feed_helper = new \phpbb\feed\helper($config, $container, $path_helper, $container->get('text_formatter.renderer'), $user); $db = $this->new_dbal(); $cache = new \phpbb_mock_cache(); $auth = new \phpbb\auth\auth(); diff --git a/tests/functions/make_clickable_email_test.php b/tests/functions/make_clickable_email_test.php index f32b4339a8..d481bde80d 100644 --- a/tests/functions/make_clickable_email_test.php +++ b/tests/functions/make_clickable_email_test.php @@ -17,9 +17,10 @@ class phpbb_functions_make_clickable_email_test extends phpbb_test_case { parent::setUp(); - global $config, $user, $request; + global $config, $user, $request, $symfony_request; $user = new phpbb_mock_user(); $request = new phpbb_mock_request(); + $symfony_request = new \phpbb\symfony_request($request); } /** @@ -168,7 +169,7 @@ class phpbb_functions_make_clickable_email_test extends phpbb_test_case array('abc,def@example.com'), // invalid character , array('abc<def@example.com'), // invalid character < array('abc>def@example.com', 'abc><!-- e --><a href="mailto:def@example.com">def@example.com</a><!-- e -->'), // invalid character > - + // http://fightingforalostcause.net/misc/2006/compare-email-regex.php array('missingDomain@.com'), array('@missingLocal.org'), diff --git a/tests/functions/make_clickable_test.php b/tests/functions/make_clickable_test.php index 48fc2c19fb..a351a6d527 100644 --- a/tests/functions/make_clickable_test.php +++ b/tests/functions/make_clickable_test.php @@ -146,9 +146,10 @@ class phpbb_functions_make_clickable_test extends phpbb_test_case { parent::setUp(); - global $config, $user, $request; + global $config, $user, $request, $symfony_request; $user = new phpbb_mock_user(); $request = new phpbb_mock_request(); + $symfony_request = new \phpbb\symfony_request($request); } /** diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index eb56049515..c9943c4302 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -572,6 +572,9 @@ class phpbb_functional_test_case extends phpbb_test_case $config['rand_seed'] = ''; $config['rand_seed_last_update'] = time() + 600; + // Prevent new user to have an invalid style + $config['default_style'] = 1; + // Required by user_add global $db, $cache, $phpbb_dispatcher, $phpbb_container; $db = $this->get_db(); diff --git a/tests/text_formatter/s9e/factory_test.php b/tests/text_formatter/s9e/factory_test.php index 82b1b0043b..fd9b4e4c09 100644 --- a/tests/text_formatter/s9e/factory_test.php +++ b/tests/text_formatter/s9e/factory_test.php @@ -34,7 +34,7 @@ class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case public function get_factory($styles_path = null) { - global $config, $phpbb_root_path, $request, $user; + global $config, $phpbb_root_path, $request, $symfony_request, $user; if (!isset($styles_path)) { @@ -69,6 +69,7 @@ class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case 'server_protocol' => 'http://', )); $request = new phpbb_mock_request; + $symfony_request = new \phpbb\symfony_request($request); $user = new phpbb_mock_user; return $factory; @@ -152,7 +153,7 @@ class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case public function test_local_url() { - global $config, $user, $request; + global $config, $user, $request, $symfony_request; $config = new \phpbb\config\config(array( 'force_server_vars' => true, 'server_protocol' => 'http://', @@ -163,6 +164,7 @@ class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case )); $user = new phpbb_mock_user; $request = new phpbb_mock_request; + $symfony_request = new \phpbb\symfony_request($request); $fixture = __DIR__ . '/fixtures/local_url.xml'; $renderer = $this->get_test_case_helpers()->set_s9e_services(null, $fixture)->get('text_formatter.renderer'); |