/**
  * Test send_instant_messages
  */
 public function test_send_instant_messages()
 {
     global $DB, $USER, $CFG;
     $this->resetAfterTest(true);
     // Transactions used in tests, tell phpunit use alternative reset method.
     $this->preventResetByRollback();
     // Turn off all message processors (so nothing is really sent)
     require_once $CFG->dirroot . '/message/lib.php';
     $messageprocessors = get_message_processors();
     foreach ($messageprocessors as $messageprocessor) {
         $messageprocessor->enabled = 0;
         $DB->update_record('message_processors', $messageprocessor);
     }
     // Set the required capabilities by the external function
     $contextid = context_system::instance()->id;
     $roleid = $this->assignUserCapability('moodle/site:sendmessage', $contextid);
     $user1 = self::getDataGenerator()->create_user();
     // Create test message data.
     $message1 = array();
     $message1['touserid'] = $user1->id;
     $message1['text'] = 'the message.';
     $message1['clientmsgid'] = 4;
     $messages = array($message1);
     $sentmessages = core_message_external::send_instant_messages($messages);
     // We need to execute the return values cleaning process to simulate the web service server.
     $sentmessages = external_api::clean_returnvalue(core_message_external::send_instant_messages_returns(), $sentmessages);
     $themessage = $DB->get_record('message', array('id' => $sentmessages[0]['msgid']));
     // Confirm that the message was inserted correctly.
     $this->assertEquals($themessage->useridfrom, $USER->id);
     $this->assertEquals($themessage->useridto, $message1['touserid']);
     $this->assertEquals($themessage->smallmessage, $message1['text']);
     $this->assertEquals($sentmessages[0]['clientmsgid'], $message1['clientmsgid']);
 }
Beispiel #2
0
 /**
  * Returns description of method result value
  *
  * @return external_description
  * @since Moodle 2.1
  * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more.
  * @see core_message_external::send_instant_messages_returns()
  */
 public static function send_instantmessages_returns()
 {
     return core_message_external::send_instant_messages_returns();
 }