Skip to:
Content

BuddyPress.org

Ticket #6894: 6894.01.patch

File 6894.01.patch, 1.9 KB (added by r-a-y, 9 years ago)
  • src/bp-messages/bp-messages-functions.php

     
    175175        }
    176176
    177177        // Bail if message failed to send.
    178         if ( ! $message->send() ) {
     178        $send = $message->send();
     179        if ( false === is_int( $send ) ) {
     180                if ( 'wp_error' === $r['error_type'] ) {
     181                        if ( is_wp_error( $send ) ) {
     182                                return $send;
     183                        } else {
     184                                return new WP_Error( 'message_generic_error', __( 'Message was not sent. Please try again.', 'buddypress' ) );
     185                        }
     186                }
     187
    179188                return false;
    180189        }
    181190
  • tests/phpunit/testcases/messages/functions.php

     
    5858
    5959                $this->assertSame( 'Message could not be sent because you have entered an invalid username. Please try again.', $t1->get_error_message() );
    6060        }
     61
     62        /**
     63         * @group messages_new_message
     64         * @group raytest
     65         */
     66        public function test_messages_new_message_wp_error_generic() {
     67                $u1 = $this->factory->user->create();
     68                $u2 = $this->factory->user->create();
     69
     70                // Emulate a plugin disabling messages.
     71                add_action( 'messages_message_before_save', array( $this, 'remove_recipients_before_save' ) );
     72
     73                // send a private message
     74                $t1 = messages_new_message( array(
     75                        'sender_id'  => $u1,
     76                        'recipients' => array( $u2 ),
     77                        'subject'    => 'A new message',
     78                        'content'    => 'Hey there!',
     79                        'error_type' => 'wp_error'
     80                ) );
     81
     82                $this->assertNotEmpty( $t1->get_error_code() );
     83
     84                remove_action( 'messages_message_before_save', array( $this, 'remove_recipients_before_save' ) );
     85        }
     86
     87        /**
     88         * Helper method for test_messages_new_message_wp_error_generic().
     89         */
     90        public function remove_recipients_before_save( $message ) {
     91                $message->recipients = array();
     92        }
    6193}