MDL-63958 course: Return raw mimetype apart from description

This commit is contained in:
Juan Leyva 2018-11-15 14:37:07 +01:00
parent 08c51ff080
commit 34ad1a017e
2 changed files with 22 additions and 0 deletions

View file

@ -1188,6 +1188,27 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
$this->assertArrayNotHasKey('completiondata', $result[0]['modules'][0]);
}
/**
* Test mimetype is returned for resources with showtype set.
*/
public function test_get_course_contents_including_mimetype() {
$this->resetAfterTest(true);
$this->setAdminUser();
$course = self::getDataGenerator()->create_course();
$record = new stdClass();
$record->course = $course->id;
$record->showtype = 1;
$resource = self::getDataGenerator()->create_module('resource', $record);
$result = core_course_external::get_course_contents($course->id);
$result = external_api::clean_returnvalue(core_course_external::get_course_contents_returns(), $result);
$this->assertCount(1, $result[0]['modules']); // One module, first section.
$customdata = unserialize(json_decode($result[0]['modules'][0]['customdata']));
$this->assertEquals('text/plain', $customdata['filedetails']['mimetype']);
}
/**
* Test duplicate_course
*/

View file

@ -305,6 +305,7 @@ function resource_get_file_details($resource, $cm) {
if (!empty($options['showtype'])) {
if ($mainfile) {
$filedetails['type'] = get_mimetype_description($mainfile);
$filedetails['mimetype'] = $mainfile->get_mimetype();
// Only show type if it is not unknown.
if ($filedetails['type'] === get_mimetype_description('document/unknown')) {
$filedetails['type'] = '';