| Línea 32... |
Línea 32... |
| 32 |
* Unit tests for (some of) mod/feedback/lib.php.
|
32 |
* Unit tests for (some of) mod/feedback/lib.php.
|
| 33 |
*
|
33 |
*
|
| 34 |
* @copyright 2016 Stephen Bourget
|
34 |
* @copyright 2016 Stephen Bourget
|
| 35 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
35 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
| 36 |
*/
|
36 |
*/
|
| 37 |
class lib_test extends \advanced_testcase {
|
37 |
final class lib_test extends \advanced_testcase {
|
| Línea 38... |
Línea 38... |
| 38 |
|
38 |
|
| 39 |
public function test_feedback_initialise(): void {
|
39 |
public function test_feedback_initialise(): void {
|
| 40 |
$this->resetAfterTest();
|
40 |
$this->resetAfterTest();
|
| Línea 1161... |
Línea 1161... |
| 1161 |
'timeopen' => $time + 200,
|
1161 |
'timeopen' => $time + 200,
|
| 1162 |
'timeclose' => $time + 2000,
|
1162 |
'timeclose' => $time + 2000,
|
| 1163 |
);
|
1163 |
);
|
| 1164 |
$generator->create_instance($params);
|
1164 |
$generator->create_instance($params);
|
| 1165 |
}
|
1165 |
}
|
| - |
|
1166 |
|
| - |
|
1167 |
/**
|
| - |
|
1168 |
* Test that if a teacher (non editing) is not part of any group in separate group mode he will not receive notification emails.
|
| - |
|
1169 |
* @covers ::feedback_get_receivemail_users
|
| - |
|
1170 |
*/
|
| - |
|
1171 |
public function test_feedback_get_receivemail_users(): void {
|
| - |
|
1172 |
$this->resetAfterTest();
|
| - |
|
1173 |
$generator = $this->getDataGenerator();
|
| - |
|
1174 |
$course = $generator->create_course(['groupmode' => SEPARATEGROUPS, 'groupmodeforce' => 1]);
|
| - |
|
1175 |
$group = $generator->create_group(['courseid' => $course->id, 'name' => 'group0']);
|
| - |
|
1176 |
|
| - |
|
1177 |
$feedbackgenerator = $generator->get_plugin_generator('mod_feedback');
|
| - |
|
1178 |
$feedback = $feedbackgenerator->create_instance(['course' => $course->id, 'email_notification' => true]);
|
| - |
|
1179 |
$teacher = [];
|
| - |
|
1180 |
$data = [
|
| - |
|
1181 |
'teacher1' => 'teacher',
|
| - |
|
1182 |
'teacher2' => 'teacher',
|
| - |
|
1183 |
'teacher3' => 'editingteacher',
|
| - |
|
1184 |
'teacher4' => 'editingteacher',
|
| - |
|
1185 |
];
|
| - |
|
1186 |
foreach ($data as $username => $role) {
|
| - |
|
1187 |
$teacher[$username] = $generator->create_user(['username' => $username]);
|
| - |
|
1188 |
$generator->enrol_user($teacher[$username]->id, $course->id, $role);
|
| - |
|
1189 |
}
|
| - |
|
1190 |
$generator->create_group_member([
|
| - |
|
1191 |
'groupid' => $group->id,
|
| - |
|
1192 |
'userid' => $teacher['teacher1']->id,
|
| - |
|
1193 |
]);
|
| - |
|
1194 |
$generator->create_group_member([
|
| - |
|
1195 |
'groupid' => $group->id,
|
| - |
|
1196 |
'userid' => $teacher['teacher4']->id,
|
| - |
|
1197 |
]);
|
| - |
|
1198 |
|
| - |
|
1199 |
$usergroup = $group->id;
|
| - |
|
1200 |
// Non editing Teachers (teacher1) in a group should receive notification emails.
|
| - |
|
1201 |
// Editing teachers (teacher4), in a group should also receive notification emails.
|
| - |
|
1202 |
$teachersingroup = feedback_get_receivemail_users($feedback->cmid, $usergroup);
|
| - |
|
1203 |
$this->assertCount(2, $teachersingroup);
|
| - |
|
1204 |
$this->assertNotEmpty($teachersingroup[$teacher['teacher1']->id]);
|
| - |
|
1205 |
$this->assertNotEmpty($teachersingroup[$teacher['teacher4']->id]);
|
| - |
|
1206 |
// Here we should return only the editing teachers (teacher3 and 4) who have access to all groups.
|
| - |
|
1207 |
$teacherwithnogroup = feedback_get_receivemail_users($feedback->cmid);
|
| - |
|
1208 |
$this->assertCount(2, $teacherwithnogroup);
|
| - |
|
1209 |
$this->assertNotEmpty($teacherwithnogroup[$teacher['teacher3']->id]);
|
| - |
|
1210 |
$this->assertNotEmpty($teacherwithnogroup[$teacher['teacher4']->id]);
|
| - |
|
1211 |
}
|
| 1166 |
}
|
1212 |
}
|