MDL-78528 completion: Add suffix support to avoid duplicated ids
This commit is contained in:
@@ -80,6 +80,50 @@ class modlib_test extends \advanced_testcase {
|
||||
prepare_new_moduleinfo_data($course, $assignmodule->name, $sectionnumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test prepare_new_moduleinfo_data with suffix (which is currently only used by the completion rules).
|
||||
* @covers ::prepare_new_moduleinfo_data
|
||||
*/
|
||||
public function test_prepare_new_moduleinfo_data_with_suffix() {
|
||||
global $DB;
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$this->setAdminUser();
|
||||
$course = self::getDataGenerator()->create_course();
|
||||
$coursecontext = \context_course::instance($course->id);
|
||||
// Test with a complex module, like assign.
|
||||
$assignmodule = $DB->get_record('modules', ['name' => 'assign'], '*', MUST_EXIST);
|
||||
$sectionnumber = 1;
|
||||
|
||||
$suffix = 'mysuffix';
|
||||
[$module, $context, $cw, $cm, $data] = prepare_new_moduleinfo_data($course, $assignmodule->name, $sectionnumber, $suffix);
|
||||
$this->assertEquals($assignmodule, $module);
|
||||
$this->assertEquals($coursecontext, $context);
|
||||
$this->assertNull($cm); // Not cm yet.
|
||||
|
||||
$expecteddata = new \stdClass();
|
||||
$expecteddata->section = $sectionnumber;
|
||||
$expecteddata->visible = 1;
|
||||
$expecteddata->course = $course->id;
|
||||
$expecteddata->module = $module->id;
|
||||
$expecteddata->modulename = $module->name;
|
||||
$expecteddata->groupmode = $course->groupmode;
|
||||
$expecteddata->groupingid = $course->defaultgroupingid;
|
||||
$expecteddata->id = '';
|
||||
$expecteddata->instance = '';
|
||||
$expecteddata->coursemodule = '';
|
||||
$expecteddata->advancedgradingmethod_submissions = ''; // Not grading methods enabled by default.
|
||||
$expecteddata->{'completion' . $suffix} = 0;
|
||||
$expecteddata->downloadcontent = DOWNLOAD_COURSE_CONTENT_ENABLED;
|
||||
|
||||
// Unset untestable.
|
||||
unset($data->introeditor);
|
||||
unset($data->_advancedgradingdata);
|
||||
|
||||
$this->assertEquals($expecteddata, $data);
|
||||
$this->assertFalse(property_exists($data, 'completion'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get_moduleinfo_data
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user