/** * 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']); }
/** * 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(); }