Changeset 9208
- Timestamp:
- 12/03/2014 03:27:09 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-messages/bp-messages-notifications.php
r8947 r9208 129 129 if ( 'new_message' === $action ) { 130 130 if ( $total_items > 1 ) { 131 $amount = 'multiple'; 131 132 $text = sprintf( __( 'You have %d new messages', 'buddypress' ), $total_items ); 132 $filter = 'bp_messages_multiple_new_message_notification';133 133 } else { 134 $amount = 'single'; 135 134 136 // get message thread ID 135 137 $message = new BP_Messages_Message( $item_id ); … … 144 146 $text = sprintf( _n( 'You have %s new private message', 'You have %s new private messages', $total_items, 'buddypress' ), bp_core_number_format( $total_items ) ); 145 147 } 146 $filter = 'bp_messages_single_new_message_notification';147 148 } 148 149 } … … 154 155 $retval = esc_html( $text ); 155 156 } 156 $return = apply_filters( $filter, $retval, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); 157 158 /** 159 * Filters the new message notification text before the notification is created. 160 * 161 * This is a dynamic filter. Possible filter names are: 162 * - 'bp_messages_multiple_new_message_notification' 163 * - 'bp_messages_single_new_message_notification' 164 * 165 * @param string $retval Notification text. 166 * @param int $total_items Number of messages referred to by the notification. 167 * @param string $text The raw notification test (ie, not wrappen in a link). 168 * @param int $item_id ID of the associated item. 169 * @param int $secondary_item_id ID of the secondary associated item. 170 */ 171 $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', $retval, (int) $total_items, $text, $link, $item_id, $secondary_item_id ); 157 172 } else { 158 $return = apply_filters( $filter, array( 173 /** This filter is documented in bp-messages/bp-messages-notifications.php */ 174 $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', array( 159 175 'text' => $text, 160 176 'link' => $link -
trunk/tests/phpunit/testcases/messages/notifications.php
r9139 r9208 6 6 */ 7 7 class BP_Tests_Messages_Notifications extends BP_UnitTestCase { 8 9 protected $filter_fired; 10 11 public function setUp() { 12 parent::setUp(); 13 14 $this->filter_fired = ''; 15 } 8 16 /** 9 17 * @group bp_messages_message_delete_notifications … … 43 51 $this->set_current_user( $current_user ); 44 52 } 53 54 /** 55 * @group messages_format_notifications 56 */ 57 public function test_friends_format_notifications_bp_messages_multiple_new_message_notification_nonstring_filter() { 58 // Dummy thread ID 59 $t = 12; 60 $u = $this->factory->user->create(); 61 $this->set_current_user( $u ); 62 63 // Admin 64 $n = $this->factory->notification->create( array( 65 'component_name' => 'messages', 66 'user_id' => $u, 67 'item_id' => $t, 68 'component_action' => 'new_message', 69 ) ); 70 71 add_filter( 'bp_messages_multiple_new_message_notification', array( $this, 'notification_filter_callback' ) ); 72 $n = messages_format_notifications( 'new_message', $n, '', 2, 'array' ); 73 remove_filter( 'bp_messages_multiple_new_message_notification', array( $this, 'notification_filter_callback' ) ); 74 75 $this->assertSame( 'bp_messages_multiple_new_message_notification', $this->filter_fired ); 76 } 77 78 /** 79 * @group messages_format_notifications 80 */ 81 public function test_friends_format_notifications_bp_messages_single_new_message_notification_nonstring_filter() { 82 // Dummy thread ID 83 $t = 12; 84 $u = $this->factory->user->create(); 85 $this->set_current_user( $u ); 86 87 // Admin 88 $n = $this->factory->notification->create( array( 89 'component_name' => 'messages', 90 'user_id' => $u, 91 'item_id' => $t, 92 'component_action' => 'new_message', 93 ) ); 94 95 add_filter( 'bp_messages_single_new_message_notification', array( $this, 'notification_filter_callback' ) ); 96 $n = messages_format_notifications( 'new_message', $n, '', 1, 'array' ); 97 remove_filter( 'bp_messages_single_new_message_notification', array( $this, 'notification_filter_callback' ) ); 98 99 $this->assertSame( 'bp_messages_single_new_message_notification', $this->filter_fired ); 100 } 101 102 /** 103 * @group messages_format_notifications 104 */ 105 public function test_friends_format_notifications_bp_messages_multiple_new_message_notification_string_filter() { 106 // Dummy thread ID 107 $t = 12; 108 $u = $this->factory->user->create(); 109 $this->set_current_user( $u ); 110 111 // Admin 112 $n = $this->factory->notification->create( array( 113 'component_name' => 'messages', 114 'user_id' => $u, 115 'item_id' => $t, 116 'component_action' => 'new_message', 117 ) ); 118 119 add_filter( 'bp_messages_multiple_new_message_notification', array( $this, 'notification_filter_callback' ) ); 120 $n = messages_format_notifications( 'new_message', $n, '', 2 ); 121 remove_filter( 'bp_messages_multiple_new_message_notification', array( $this, 'notification_filter_callback' ) ); 122 123 $this->assertSame( 'bp_messages_multiple_new_message_notification', $this->filter_fired ); 124 } 125 126 /** 127 * @group messages_format_notifications 128 */ 129 public function test_friends_format_notifications_bp_messages_single_new_message_notification_string_filter() { 130 // Dummy thread ID 131 $t = 12; 132 $u = $this->factory->user->create(); 133 $this->set_current_user( $u ); 134 135 // Admin 136 $n = $this->factory->notification->create( array( 137 'component_name' => 'messages', 138 'user_id' => $u, 139 'item_id' => $t, 140 'component_action' => 'new_message', 141 ) ); 142 143 add_filter( 'bp_messages_single_new_message_notification', array( $this, 'notification_filter_callback' ) ); 144 $n = messages_format_notifications( 'new_message', $n, '', 1 ); 145 remove_filter( 'bp_messages_single_new_message_notification', array( $this, 'notification_filter_callback' ) ); 146 147 $this->assertSame( 'bp_messages_single_new_message_notification', $this->filter_fired ); 148 } 149 150 public function notification_filter_callback( $value ) { 151 $this->filter_fired = current_filter(); 152 return $value; 153 } 45 154 }
Note: See TracChangeset
for help on using the changeset viewer.