mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 00:42:54 +02:00
Merge branch 'MDL-74076' of https://github.com/paulholden/moodle
This commit is contained in:
commit
d51c17a2ca
@ -119,10 +119,12 @@ class schedule {
|
||||
|
||||
// Now convert audiences to SQL for user retrieval.
|
||||
[$wheres, $params] = audience::user_audience_sql($audiences);
|
||||
[$userorder] = users_order_by_sql('u');
|
||||
|
||||
$sql = 'SELECT u.*
|
||||
FROM {user} u
|
||||
WHERE ' . implode(' OR ', $wheres);
|
||||
WHERE ' . implode(' OR ', $wheres) . '
|
||||
ORDER BY ' . $userorder;
|
||||
|
||||
return $DB->get_records_sql($sql, $params);
|
||||
}
|
||||
|
@ -189,13 +189,13 @@ class schedule_test extends advanced_testcase {
|
||||
|
||||
// Create cohort, with some members.
|
||||
$cohort = $this->getDataGenerator()->create_cohort();
|
||||
$cohortuserone = $this->getDataGenerator()->create_user();
|
||||
$cohortuserone = $this->getDataGenerator()->create_user(['firstname' => 'Zoe', 'lastname' => 'Zebra']);
|
||||
cohort_add_member($cohort->id, $cohortuserone->id);
|
||||
$cohortusertwo = $this->getDataGenerator()->create_user();
|
||||
$cohortusertwo = $this->getDataGenerator()->create_user(['firstname' => 'Henrietta', 'lastname' => 'Hamster']);
|
||||
cohort_add_member($cohort->id, $cohortusertwo->id);
|
||||
|
||||
// Create a third user, to be added manually.
|
||||
$manualuserone = $this->getDataGenerator()->create_user();
|
||||
$manualuserone = $this->getDataGenerator()->create_user(['firstname' => 'Bob', 'lastname' => 'Badger']);
|
||||
|
||||
$audiencecohort = $generator->create_audience([
|
||||
'reportid' => $report->get('id'),
|
||||
@ -220,11 +220,11 @@ class schedule_test extends advanced_testcase {
|
||||
]);
|
||||
|
||||
$users = schedule::get_schedule_report_users($schedule);
|
||||
$this->assertEqualsCanonicalizing([
|
||||
$cohortuserone->id,
|
||||
$cohortusertwo->id,
|
||||
$manualuserone->id,
|
||||
], array_keys($users));
|
||||
$this->assertEquals([
|
||||
'Bob',
|
||||
'Henrietta',
|
||||
'Zoe',
|
||||
], array_column($users, 'firstname'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -72,8 +72,18 @@ class send_schedule_test extends advanced_testcase {
|
||||
$this->resetAfterTest();
|
||||
$this->setAdminUser();
|
||||
|
||||
$userone = $this->getDataGenerator()->create_user(['username' => 'userone', 'email' => 'user1@example.com']);
|
||||
$usertwo = $this->getDataGenerator()->create_user(['username' => 'usertwo', 'email' => 'user2@example.com']);
|
||||
$userone = $this->getDataGenerator()->create_user([
|
||||
'username' => 'userone',
|
||||
'email' => 'user1@example.com',
|
||||
'firstname' => 'Zoe',
|
||||
'lastname' => 'Zebra',
|
||||
]);
|
||||
$usertwo = $this->getDataGenerator()->create_user([
|
||||
'username' => 'usertwo',
|
||||
'email' => 'user2@example.com',
|
||||
'firstname' => 'Henrietta',
|
||||
'lastname' => 'Hamster',
|
||||
]);
|
||||
|
||||
/** @var core_reportbuilder_generator $generator */
|
||||
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
||||
@ -106,20 +116,17 @@ class send_schedule_test extends advanced_testcase {
|
||||
'audiences' => json_encode([$audience->get_persistent()->get('id')]),
|
||||
]);
|
||||
|
||||
// Send the schedule, catch emails in sink.
|
||||
// Send the schedule, catch emails in sink (noting the users are sorted alphabetically).
|
||||
$sink = $this->redirectEmails();
|
||||
|
||||
ob_start();
|
||||
$this->expectOutputRegex("/^Sending schedule: My schedule\n" .
|
||||
" Sending to: " . fullname($usertwo) . "\n" .
|
||||
" Sending to: " . fullname($userone) . "\n" .
|
||||
"Sending schedule complete\n/"
|
||||
);
|
||||
$sendschedule = new send_schedule();
|
||||
$sendschedule->set_custom_data(['reportid' => $report->get('id'), 'scheduleid' => $schedule->get('id')]);
|
||||
$sendschedule->execute();
|
||||
$output = ob_get_clean();
|
||||
|
||||
// Assert the output contains the following messages.
|
||||
$this->assertStringContainsString("Sending schedule: My schedule", $output);
|
||||
$this->assertStringContainsString("Sending to: " . fullname($userone), $output);
|
||||
$this->assertStringContainsString("Sending to: " . fullname($usertwo), $output);
|
||||
$this->assertStringContainsString("Sending schedule complete", $output);
|
||||
|
||||
$messages = $sink->get_messages();
|
||||
$this->assertCount(2, $messages);
|
||||
|
Loading…
x
Reference in New Issue
Block a user