diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2012-10-20 20:54:18 -0500 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2012-10-20 20:58:53 -0500 |
commit | 94d682f77431add84867bb0b196ad0719b293606 (patch) | |
tree | 1a589cd8c2bd9ac054ea0394eaa8b240cfe7c030 /tests/notification | |
parent | 6861af22eecfa4a254eb62245ee109d8e5635f93 (diff) | |
download | forums-94d682f77431add84867bb0b196ad0719b293606.tar forums-94d682f77431add84867bb0b196ad0719b293606.tar.gz forums-94d682f77431add84867bb0b196ad0719b293606.tar.bz2 forums-94d682f77431add84867bb0b196ad0719b293606.tar.xz forums-94d682f77431add84867bb0b196ad0719b293606.zip |
[ticket/11103] Use the full class name as the item_type/method
This is going to require you recreate the db tables.
PHPBB3-11103
Diffstat (limited to 'tests/notification')
-rw-r--r-- | tests/notification/ext/test/notification/type/test.php | 30 | ||||
-rw-r--r-- | tests/notification/notification.php | 285 |
2 files changed, 152 insertions, 163 deletions
diff --git a/tests/notification/ext/test/notification/type/test.php b/tests/notification/ext/test/notification/type/test.php index f3aa8ba6f3..e76bdb5e0c 100644 --- a/tests/notification/ext/test/notification/type/test.php +++ b/tests/notification/ext/test/notification/type/test.php @@ -17,13 +17,6 @@ if (!defined('IN_PHPBB')) class phpbb_ext_test_notification_type_test extends phpbb_notification_type_base { - public $email_template = 'topic_notify'; - - public static function get_item_type() - { - return 'ext_test-test'; - } - public static function get_item_id($post) { return (int) $post['post_id']; @@ -39,11 +32,25 @@ class phpbb_ext_test_notification_type_test extends phpbb_notification_type_base return $this->_find_users_for_notification(0, $options); } - public function create_insert_array($post) + public function create_insert_array($post, $pre_create_data = array()) { $this->time = $post['post_time']; - return parent::create_insert_array($post); + return parent::create_insert_array($post, $pre_create_data); + } + + public function create_update_array($type_data) + { + $data = $this->create_insert_array($type_data); + + // Unset data unique to each row + unset( + $data['notification_id'], + $data['unread'], + $data['user_id'] + ); + + return $data; } public function get_title() @@ -61,6 +68,11 @@ class phpbb_ext_test_notification_type_test extends phpbb_notification_type_base return ''; } + public function get_email_template() + { + return false; + } + public function get_email_template_variables() { return array(); diff --git a/tests/notification/notification.php b/tests/notification/notification.php index 13fc99bed3..0bb69dc2c5 100644 --- a/tests/notification/notification.php +++ b/tests/notification/notification.php @@ -95,13 +95,20 @@ class phpbb_notification_test extends phpbb_database_test_case public function test_get_subscription_types() { - $this->assertArrayHasKey('ext_test-test', $this->notifications->get_subscription_types()); - $this->assertArrayHasKey('moderation_queue', $this->notifications->get_subscription_types()); - $this->assertArrayHasKey('bookmark', $this->notifications->get_subscription_types()); - $this->assertArrayHasKey('pm', $this->notifications->get_subscription_types()); - $this->assertArrayHasKey('post', $this->notifications->get_subscription_types()); - $this->assertArrayHasKey('quote', $this->notifications->get_subscription_types()); - $this->assertArrayHasKey('topic', $this->notifications->get_subscription_types()); + $subscription_types = $this->notifications->get_subscription_types(); + + $this->assertArrayHasKey('NOTIFICATION_GROUP_MISCELLANEOUS', $subscription_types); + $this->assertArrayHasKey('NOTIFICATION_GROUP_POSTING', $subscription_types); + + $this->assertArrayHasKey('phpbb_notification_type_bookmark', $subscription_types['NOTIFICATION_GROUP_POSTING']); + $this->assertArrayHasKey('phpbb_notification_type_post', $subscription_types['NOTIFICATION_GROUP_POSTING']); + $this->assertArrayHasKey('phpbb_notification_type_quote', $subscription_types['NOTIFICATION_GROUP_POSTING']); + $this->assertArrayHasKey('phpbb_notification_type_topic', $subscription_types['NOTIFICATION_GROUP_POSTING']); + + $this->assertArrayHasKey('moderation_queue', $subscription_types['NOTIFICATION_GROUP_POSTING']); + + $this->assertArrayHasKey('phpbb_notification_type_pm', $subscription_types['NOTIFICATION_GROUP_MISCELLANEOUS']); + $this->assertArrayHasKey('phpbb_ext_test_notification_type_test', $subscription_types['NOTIFICATION_GROUP_MISCELLANEOUS']); //get_subscription_types //get_subscription_methods @@ -109,23 +116,23 @@ class phpbb_notification_test extends phpbb_database_test_case public function test_subscriptions() { - $this->notifications->add_subscription('post', 0, ''); - $this->notifications->add_subscription('post', 0, '', 1); - $this->notifications->add_subscription('quote', 0, '', 1); - - $this->notifications->add_subscription('post', 0, '', 2); - $this->notifications->add_subscription('post', 0, 'email', 2); - $this->notifications->add_subscription('post', 0, 'jabber', 2); - $this->notifications->add_subscription('post', 1, '', 2); - $this->notifications->add_subscription('post', 1, 'email', 2); - $this->notifications->add_subscription('post', 1, 'jabber', 2); - $this->notifications->add_subscription('post', 2, '', 2); - $this->notifications->add_subscription('post', 2, 'email', 2); - $this->notifications->add_subscription('post', 2, 'jabber', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 0, ''); + $this->notifications->add_subscription('phpbb_notification_type_post', 0, '', 1); + $this->notifications->add_subscription('phpbb_notification_type_quote', 0, '', 1); + + $this->notifications->add_subscription('phpbb_notification_type_post', 0, '', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 0, 'email', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 0, 'jabber', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 1, '', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 1, 'email', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 1, 'jabber', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 2, '', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 2, 'email', 2); + $this->notifications->add_subscription('phpbb_notification_type_post', 2, 'jabber', 2); $this->assertEquals(array( array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 0, 'method' => '', @@ -134,13 +141,13 @@ class phpbb_notification_test extends phpbb_database_test_case $this->assertEquals(array( array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 1, 'method' => '', ), array( - 'item_type' => 'quote', + 'item_type' => 'phpbb_notification_type_quote', 'item_id' => 0, 'user_id' => 1, 'method' => '', @@ -149,55 +156,55 @@ class phpbb_notification_test extends phpbb_database_test_case $this->assertEquals(array( array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 2, 'method' => '', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 2, 'method' => 'email', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 2, 'method' => 'jabber', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 1, 'user_id' => 2, 'method' => '', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 1, 'user_id' => 2, 'method' => 'email', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 1, 'user_id' => 2, 'method' => 'jabber', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 2, 'user_id' => 2, 'method' => '', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 2, 'user_id' => 2, 'method' => 'email', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 2, 'user_id' => 2, 'method' => 'jabber', @@ -205,50 +212,50 @@ class phpbb_notification_test extends phpbb_database_test_case ), $this->notifications->get_subscriptions(2)); $this->assertEquals(array( - 'post' => array( + 'phpbb_notification_type_post' => array( '', 'email', 'jabber', ), ), $this->notifications->get_subscriptions(2, true)); - $this->notifications->delete_subscription('post', 0, '', 2); - $this->notifications->delete_subscription('post', 1, 'email', 2); - $this->notifications->delete_subscription('post', 2, 'jabber', 2); + $this->notifications->delete_subscription('phpbb_notification_type_post', 0, '', 2); + $this->notifications->delete_subscription('phpbb_notification_type_post', 1, 'email', 2); + $this->notifications->delete_subscription('phpbb_notification_type_post', 2, 'jabber', 2); $this->assertEquals(array( array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 2, 'method' => 'email', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 0, 'user_id' => 2, 'method' => 'jabber', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 1, 'user_id' => 2, 'method' => '', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 1, 'user_id' => 2, 'method' => 'jabber', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 2, 'user_id' => 2, 'method' => '', ), array( - 'item_type' => 'post', + 'item_type' => 'phpbb_notification_type_post', 'item_id' => 2, 'user_id' => 2, 'method' => 'email', @@ -260,7 +267,7 @@ class phpbb_notification_test extends phpbb_database_test_case { global $db; - $this->notifications->add_subscription('ext_test-test'); + $this->notifications->add_subscription('phpbb_ext_test_notification_type_test'); // Used to test post notifications later $db->sql_query('INSERT INTO ' . TOPICS_WATCH_TABLE . ' ' . $db->sql_build_array('INSERT', array( @@ -277,25 +284,25 @@ class phpbb_notification_test extends phpbb_database_test_case 'count_unread' => true, ))); - $this->notifications->add_notifications('ext_test-test', array( + $this->notifications->add_notifications('phpbb_ext_test_notification_type_test', array( 'post_id' => '1', 'topic_id' => '1', 'post_time' => 1349413321, )); - $this->notifications->add_notifications('ext_test-test', array( + $this->notifications->add_notifications('phpbb_ext_test_notification_type_test', array( 'post_id' => '2', 'topic_id' => '2', 'post_time' => 1349413322, )); - $this->notifications->add_notifications('ext_test-test', array( + $this->notifications->add_notifications('phpbb_ext_test_notification_type_test', array( 'post_id' => '3', 'topic_id' => '2', 'post_time' => 1349413323, )); - $this->notifications->add_notifications(array('quote', 'bookmark', 'post', 'ext_test-test'), array( + $this->notifications->add_notifications(array('phpbb_notification_type_quote', 'phpbb_notification_type_bookmark', 'phpbb_notification_type_post', 'phpbb_ext_test_notification_type_test'), array( 'post_id' => '4', 'topic_id' => '2', 'post_time' => 1349413324, @@ -310,9 +317,9 @@ class phpbb_notification_test extends phpbb_database_test_case 'topic_id' => 2, 'user_id' => 0, ))); - $this->notifications->add_subscription('bookmark'); + $this->notifications->add_subscription('phpbb_notification_type_bookmark'); - $this->notifications->add_notifications(array('quote', 'bookmark', 'post', 'ext_test-test'), array( + $this->notifications->add_notifications(array('phpbb_notification_type_quote', 'phpbb_notification_type_bookmark', 'phpbb_notification_type_post', 'phpbb_ext_test_notification_type_test'), array( 'post_id' => '5', 'topic_id' => '2', 'post_time' => 1349413325, @@ -323,9 +330,9 @@ class phpbb_notification_test extends phpbb_database_test_case 'forum_name' => 'Your first forum', )); - $this->notifications->delete_subscription('ext_test-test'); + $this->notifications->delete_subscription('phpbb_ext_test_notification_type_test'); - $this->notifications->add_notifications('ext_test-test', array( + $this->notifications->add_notifications('phpbb_ext_test_notification_type_test', array( 'post_id' => '6', 'topic_id' => '2', 'post_time' => 1349413326, @@ -336,13 +343,40 @@ class phpbb_notification_test extends phpbb_database_test_case )); $expected = array( - 5 => array( - 'item_type' => 'bookmark', - 'item_id' => 5, + 1 => array( + 'item_type' => 'phpbb_ext_test_notification_type_test', + 'item_id' => 1, + 'item_parent_id' => 1, + 'user_id' => 0, + 'unread' => 1, + 'time' => 1349413321, + 'data' => array(), + ), + 2 => array( + 'item_type' => 'phpbb_ext_test_notification_type_test', + 'item_id' => 2, 'item_parent_id' => 2, 'user_id' => 0, 'unread' => 1, - 'time' => 1349413325, + 'time' => 1349413322, + 'data' => array(), + ), + 3 => array( + 'item_type' => 'phpbb_ext_test_notification_type_test', + 'item_id' => 3, + 'item_parent_id' => 2, + 'user_id' => 0, + 'unread' => 1, + 'time' => 1349413323, + 'data' => array(), + ), + 4 => array( + 'item_type' => 'phpbb_notification_type_post', + 'item_id' => 4, + 'item_parent_id' => 2, + 'user_id' => 0, + 'unread' => 1, + 'time' => 1349413324, 'data' => array( 'poster_id' => 2, 'topic_title' => 'test-title', @@ -352,13 +386,13 @@ class phpbb_notification_test extends phpbb_database_test_case 'forum_name' => 'Your first forum', ), ), - 4 => array( - 'item_type' => 'post', - 'item_id' => 4, + 5 => array( + 'item_type' => 'phpbb_notification_type_bookmark', + 'item_id' => 5, 'item_parent_id' => 2, 'user_id' => 0, 'unread' => 1, - 'time' => 1349413324, + 'time' => 1349413325, 'data' => array( 'poster_id' => 2, 'topic_title' => 'test-title', @@ -368,72 +402,41 @@ class phpbb_notification_test extends phpbb_database_test_case 'forum_name' => 'Your first forum', ), ), - 3 => array( - 'item_type' => 'ext_test-test', - 'item_id' => 3, - 'item_parent_id' => 2, - 'user_id' => 0, - 'unread' => 1, - 'time' => 1349413323, - 'data' => array(), - ), - 2 => array( - 'item_type' => 'ext_test-test', - 'item_id' => 2, - 'item_parent_id' => 2, - 'user_id' => 0, - 'unread' => 1, - 'time' => 1349413322, - 'data' => array(), - ), - 1 => array( - 'item_type' => 'ext_test-test', - 'item_id' => 1, - 'item_parent_id' => 1, - 'user_id' => 0, - 'unread' => 1, - 'time' => 1349413321, - 'data' => array(), - ), ); $this->assertEquals(sizeof($expected), $notifications['unread_count']); $notifications = $notifications['notifications']; - $i = 0; foreach ($expected as $notification_id => $notification_data) { - //echo $notifications[$i]; + //echo $notifications[$notification_id]; - $this->assertEquals($notification_id, $notifications[$i]->notification_id, 'notification_id'); + $this->assertEquals($notification_id, $notifications[$notification_id]->notification_id, 'notification_id'); foreach ($notification_data as $key => $value) { - $this->assertEquals($value, $notifications[$i]->$key, $key . ' ' . $notification_id); + $this->assertEquals($value, $notifications[$notification_id]->$key, $key . ' ' . $notification_id); } - - $i++; } // Now test updating ------------------------------- - $this->notifications->update_notifications('ext_test-test', array( + $this->notifications->update_notifications('phpbb_ext_test_notification_type_test', array( 'post_id' => '1', 'topic_id' => '2', // change parent_id 'post_time' => 1349413321, )); - $this->notifications->update_notifications('ext_test-test', array( + $this->notifications->update_notifications('phpbb_ext_test_notification_type_test', array( 'post_id' => '3', 'topic_id' => '2', - 'post_time' => 1234, // change post_time + 'post_time' => 1234, // change time )); - $this->notifications->update_notifications(array('quote', 'bookmark', 'post', 'ext_test-test'), array( + $this->notifications->update_notifications(array('phpbb_notification_type_quote', 'phpbb_notification_type_bookmark', 'phpbb_notification_type_post', 'phpbb_ext_test_notification_type_test'), array( 'post_id' => '5', 'topic_id' => '2', - 'post_time' => 12345, // change post_time 'poster_id' => 2, 'topic_title' => 'test-title2', // change topic_title 'post_subject' => 'Re: test-title2', // change post_subject @@ -446,24 +449,17 @@ class phpbb_notification_test extends phpbb_database_test_case )); $expected = array( - 4 => array( - 'item_type' => 'post', - 'item_id' => 4, + 1 => array( + 'item_type' => 'phpbb_ext_test_notification_type_test', + 'item_id' => 1, 'item_parent_id' => 2, 'user_id' => 0, 'unread' => 1, - 'time' => 1349413324, - 'data' => array( - 'poster_id' => 2, - 'topic_title' => 'test-title', - 'post_subject' => 'Re: test-title', - 'post_username' => '', - 'forum_id' => 2, - 'forum_name' => 'Your first forum', - ), + 'time' => 1349413321, + 'data' => array(), ), 2 => array( - 'item_type' => 'ext_test-test', + 'item_type' => 'phpbb_ext_test_notification_type_test', 'item_id' => 2, 'item_parent_id' => 2, 'user_id' => 0, @@ -471,22 +467,38 @@ class phpbb_notification_test extends phpbb_database_test_case 'time' => 1349413322, 'data' => array(), ), - 1 => array( - 'item_type' => 'ext_test-test', - 'item_id' => 1, + 3 => array( + 'item_type' => 'phpbb_ext_test_notification_type_test', + 'item_id' => 3, 'item_parent_id' => 2, 'user_id' => 0, 'unread' => 1, - 'time' => 1349413321, + 'time' => 1234, 'data' => array(), ), + 4 => array( + 'item_type' => 'phpbb_notification_type_post', + 'item_id' => 4, + 'item_parent_id' => 2, + 'user_id' => 0, + 'unread' => 1, + 'time' => 1349413324, + 'data' => array( + 'poster_id' => 2, + 'topic_title' => 'test-title', + 'post_subject' => 'Re: test-title', + 'post_username' => '', + 'forum_id' => 2, + 'forum_name' => 'Your first forum', + ), + ), 5 => array( - 'item_type' => 'bookmark', + 'item_type' => 'phpbb_notification_type_bookmark', 'item_id' => 5, 'item_parent_id' => 2, 'user_id' => 0, 'unread' => 1, - 'time' => 12345, + 'time' => 1349413325, 'data' => array( 'poster_id' => 2, 'topic_title' => 'test-title2', @@ -496,56 +508,21 @@ class phpbb_notification_test extends phpbb_database_test_case 'forum_name' => 'Your second forum', ), ), - 3 => array( - 'item_type' => 'ext_test-test', - 'item_id' => 3, - 'item_parent_id' => 2, - 'user_id' => 0, - 'unread' => 1, - 'time' => 1234, - 'data' => array(), - ), ); $this->assertEquals(sizeof($expected), $notifications['unread_count']); $notifications = $notifications['notifications']; - $i = 0; foreach ($expected as $notification_id => $notification_data) { - //echo $notifications[$i]; + //echo $notifications[$notification_id]; - $this->assertEquals($notification_id, $notifications[$i]->notification_id, 'notification_id'); + $this->assertEquals($notification_id, $notifications[$notification_id]->notification_id, 'notification_id'); foreach ($notification_data as $key => $value) { - $this->assertEquals($value, $notifications[$i]->$key, $key . ' ' . $notification_id); - } - - $i++; - } - } - - private function dump($array, $pre = '') - { - echo ($pre == '') ? "\n------------------------------------------------\n" : ''; - - foreach ($array as $key => $value) - { - echo $pre . $key . ' => '; - - if (is_array($value)) - { - echo "\n"; - - $this->dump($value, $pre . "\t"); - } - else - { - echo (string) $value; - - echo "\n"; + $this->assertEquals($value, $notifications[$notification_id]->$key, $key . ' ' . $notification_id); } } } |