Example #1
0
 public function test_add_entry_with_attachments()
 {
     global $DB, $USER;
     $this->resetAfterTest(true);
     $course = $this->getDataGenerator()->create_course();
     $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course->id));
     $context = context_module::instance($glossary->cmid);
     $this->setAdminUser();
     $concept = 'A concept';
     $definition = 'A definition';
     // Draft files.
     $draftidinlineattach = file_get_unused_draft_itemid();
     $draftidattach = file_get_unused_draft_itemid();
     $usercontext = context_user::instance($USER->id);
     $filerecordinline = array('contextid' => $usercontext->id, 'component' => 'user', 'filearea' => 'draft', 'itemid' => $draftidinlineattach, 'filepath' => '/', 'filename' => 'shouldbeanimage.txt');
     $fs = get_file_storage();
     // Create a file in a draft area for regular attachments.
     $filerecordattach = $filerecordinline;
     $attachfilename = 'attachment.txt';
     $filerecordattach['filename'] = $attachfilename;
     $filerecordattach['itemid'] = $draftidattach;
     $fs->create_file_from_string($filerecordinline, 'image contents (not really)');
     $fs->create_file_from_string($filerecordattach, 'simple text attachment');
     $options = array(array('name' => 'inlineattachmentsid', 'value' => $draftidinlineattach), array('name' => 'attachmentsid', 'value' => $draftidattach));
     $return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options);
     $return = external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return);
     $editorfiles = external_util::get_area_files($context->id, 'mod_glossary', 'entry', $return['entryid']);
     $attachmentfiles = external_util::get_area_files($context->id, 'mod_glossary', 'attachment', $return['entryid']);
     $this->assertCount(1, $editorfiles);
     $this->assertCount(1, $attachmentfiles);
     $this->assertEquals('shouldbeanimage.txt', $editorfiles[0]['filename']);
     $this->assertEquals('attachment.txt', $attachmentfiles[0]['filename']);
 }