mirror of
https://github.com/moodle/moodle.git
synced 2025-08-09 19:06:41 +02:00
Merge branch 'wip-mdl-33618' of https://github.com/rajeshtaneja/moodle
This commit is contained in:
commit
06ef842707
6 changed files with 117 additions and 20 deletions
|
@ -57,6 +57,14 @@ function message_send($eventdata) {
|
|||
//new message ID to return
|
||||
$messageid = false;
|
||||
|
||||
// Fetch default (site) preferences
|
||||
$defaultpreferences = get_message_output_default_preferences();
|
||||
$preferencebase = $eventdata->component.'_'.$eventdata->name;
|
||||
// If message provider is disabled then don't do any processing.
|
||||
if (!empty($defaultpreferences->{$preferencebase.'_disable'})) {
|
||||
return $messageid;
|
||||
}
|
||||
|
||||
//TODO: we need to solve problems with database transactions here somehow, for now we just prevent transactions - sorry
|
||||
$DB->transactions_forbidden();
|
||||
|
||||
|
@ -150,12 +158,9 @@ function message_send($eventdata) {
|
|||
|
||||
// Fetch enabled processors
|
||||
$processors = get_message_processors(true);
|
||||
// Fetch default (site) preferences
|
||||
$defaultpreferences = get_message_output_default_preferences();
|
||||
|
||||
// Preset variables
|
||||
$processorlist = array();
|
||||
$preferencebase = $eventdata->component.'_'.$eventdata->name;
|
||||
// Fill in the array of processors to be used based on default and user preferences
|
||||
foreach ($processors as $processor) {
|
||||
// Skip adding processors for internal user, if processor doesn't support sending message to internal user.
|
||||
|
|
|
@ -27,6 +27,47 @@ defined('MOODLE_INTERNAL') || die();
|
|||
|
||||
class core_messagelib_testcase extends advanced_testcase {
|
||||
|
||||
public function test_message_provider_disabled() {
|
||||
$this->resetAfterTest();
|
||||
$this->preventResetByRollback();
|
||||
unset_config('noemailever');
|
||||
|
||||
// Disable instantmessage provider.
|
||||
$disableprovidersetting = 'moodle_instantmessage_disable';
|
||||
set_config($disableprovidersetting, 1, 'message');
|
||||
$preferences = get_message_output_default_preferences();
|
||||
$this->assertTrue($preferences->$disableprovidersetting == 1);
|
||||
|
||||
$message = new stdClass();
|
||||
$message->component = 'moodle';
|
||||
$message->name = 'instantmessage';
|
||||
$message->userfrom = get_admin();
|
||||
$message->userto = $this->getDataGenerator()->create_user();;
|
||||
$message->subject = 'message subject 1';
|
||||
$message->fullmessage = 'message body';
|
||||
$message->fullmessageformat = FORMAT_MARKDOWN;
|
||||
$message->fullmessagehtml = '<p>message body</p>';
|
||||
$message->smallmessage = 'small message';
|
||||
|
||||
// Check message is not sent.
|
||||
$sink = $this->redirectEmails();
|
||||
$this->assertTrue(phpunit_util::is_redirecting_phpmailer());
|
||||
message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertEmpty($emails);
|
||||
|
||||
// Check message is sent.
|
||||
set_config($disableprovidersetting, 0, 'message');
|
||||
$preferences = get_message_output_default_preferences();
|
||||
$this->assertTrue($preferences->$disableprovidersetting == 0);
|
||||
|
||||
$sink = $this->redirectEmails();
|
||||
$this->assertTrue(phpunit_util::is_redirecting_phpmailer());
|
||||
message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$email = reset($emails);
|
||||
$this->assertEquals($email->subject, 'message subject 1');
|
||||
}
|
||||
public function test_message_get_providers_for_user() {
|
||||
global $CFG, $DB;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue