From 34ad1a017e253ef1f8b4f77064fcab6d63266212 Mon Sep 17 00:00:00 2001 From: Juan Leyva Date: Thu, 15 Nov 2018 14:37:07 +0100 Subject: [PATCH] MDL-63958 course: Return raw mimetype apart from description --- course/tests/externallib_test.php | 21 +++++++++++++++++++++ mod/resource/locallib.php | 1 + 2 files changed, 22 insertions(+) diff --git a/course/tests/externallib_test.php b/course/tests/externallib_test.php index 39c187f46eb..25917d22d8d 100644 --- a/course/tests/externallib_test.php +++ b/course/tests/externallib_test.php @@ -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 */ diff --git a/mod/resource/locallib.php b/mod/resource/locallib.php index 7629859ea4f..f2ce6f78f6b 100644 --- a/mod/resource/locallib.php +++ b/mod/resource/locallib.php @@ -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'] = '';