diff options
author | Nathaniel Guse <nathaniel.guse@gmail.com> | 2013-05-02 15:40:43 -0500 |
---|---|---|
committer | Nathaniel Guse <nathaniel.guse@gmail.com> | 2013-05-02 15:40:43 -0500 |
commit | a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2 (patch) | |
tree | cf83a784b7464f9d43a2869e55c1d86050510972 /tests/notification/convert_test.php | |
parent | 954edb3eb4f79d48c3fdf2e204791ea454145085 (diff) | |
download | forums-a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2.tar forums-a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2.tar.gz forums-a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2.tar.bz2 forums-a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2.tar.xz forums-a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2.zip |
[ticket/11420] Fix notification options conversion
PHPBB3-11420
Diffstat (limited to 'tests/notification/convert_test.php')
-rw-r--r-- | tests/notification/convert_test.php | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/tests/notification/convert_test.php b/tests/notification/convert_test.php new file mode 100644 index 0000000000..fdd0d19e72 --- /dev/null +++ b/tests/notification/convert_test.php @@ -0,0 +1,110 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/db/db_tools.php'; +require_once dirname(__FILE__) . '/../mock/sql_insert_buffer.php'; + +class phpbb_notification_convert_test extends phpbb_database_test_case +{ + protected $notifications, $db, $container, $user, $config, $auth, $cache; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/convert.xml'); + } + + protected function setUp() + { + parent::setUp(); + + global $phpbb_root_path, $phpEx; + + $this->db = $this->new_dbal(); + + $this->migration = new phpbb_db_migration_data_310_notifications3( + new phpbb_config(array()), + $this->db, + new phpbb_db_tools($this->db), + $phpbb_root_path, + $phpEx, + 'phpbb_' + ); + } + + public function test_convert() + { + $buffer = new phpbb_mock_sql_insert_buffer($this->db, 'phpbb_user_notifications'); + $this->migration->perform_conversion($buffer, 'phpbb_user_notifications'); + + $expected = array_merge( + $this->create_expected('post', 1, 'email'), + $this->create_expected('topic', 1, 'email'), + + $this->create_expected('post', 2, 'email'), + $this->create_expected('topic', 2, 'email'), + $this->create_expected('pm', 2, 'email'), + + $this->create_expected('post', 3, 'jabber'), + $this->create_expected('topic', 3, 'jabber'), + + $this->create_expected('post', 4, 'jabber'), + $this->create_expected('topic', 4, 'jabber'), + $this->create_expected('pm', 4, 'jabber'), + + $this->create_expected('post', 5, 'both'), + $this->create_expected('topic', 5, 'both'), + + $this->create_expected('post', 6, 'both'), + $this->create_expected('topic', 6, 'both'), + $this->create_expected('pm', 6, 'both') + ); + + $this->assertEquals($expected, $buffer->get_buffer()); + } + + protected function create_expected($type, $user_id, $method = '') + { + $return = array(); + + if ($method != '') + { + $return[] = array( + 'item_type' => $type, + 'item_id' => 0, + 'user_id' => $user_id, + 'method' => '', + 'notify' => 1, + ); + } + + if ($method == 'email' || $method == 'both') + { + $return[] = array( + 'item_type' => $type, + 'item_id' => 0, + 'user_id' => $user_id, + 'method' => 'email', + 'notify' => 1, + ); + } + + if ($method == 'jabber' || $method == 'both') + { + $return[] = array( + 'item_type' => $type, + 'item_id' => 0, + 'user_id' => $user_id, + 'method' => 'jabber', + 'notify' => 1, + ); + } + + return $return; + } +} |