From e64326684393dcbad89f84da0d61241dfa4df80e Mon Sep 17 00:00:00 2001 From: Jerome Mouneyrac Date: Mon, 3 Sep 2012 15:27:22 +0800 Subject: [PATCH] MDL-34972 PHPunit test: message/externallib.php --- message/tests/externallib_test.php | 75 ++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 message/tests/externallib_test.php diff --git a/message/tests/externallib_test.php b/message/tests/externallib_test.php new file mode 100644 index 00000000000..71e229b8476 --- /dev/null +++ b/message/tests/externallib_test.php @@ -0,0 +1,75 @@ +. + +/** + * External message functions unit tests + * + * @package core_message + * @category external + * @copyright 2012 Jerome Mouneyrac + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; + +require_once($CFG->dirroot . '/webservice/tests/helpers.php'); +require_once($CFG->dirroot . '/message/externallib.php'); + +class core_message_external_testcase extends externallib_advanced_testcase { + + /** + * Test send_instant_messages + */ + public function test_send_instant_messages() { + + global $DB, $USER, $CFG; + + $this->resetAfterTest(true); + + // 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); + + $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']); + } +} \ No newline at end of file