예제 #1
0
 /**
  * Test add_user_private_files
  */
 public function test_add_user_private_files()
 {
     global $USER, $CFG, $DB;
     $this->resetAfterTest(true);
     $context = context_system::instance();
     $roleid = $this->assignUserCapability('moodle/user:manageownfiles', $context->id);
     $context = context_user::instance($USER->id);
     $contextid = $context->id;
     $component = "user";
     $filearea = "draft";
     $itemid = 0;
     $filepath = "/";
     $filename = "Simple.txt";
     $filecontent = base64_encode("Let us create a nice simple file");
     $contextlevel = null;
     $instanceid = null;
     $browser = get_file_browser();
     // Call the files api to create a file.
     $draftfile = core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent, $contextlevel, $instanceid);
     $draftid = $draftfile['itemid'];
     // Make sure the file was created.
     $file = $browser->get_file_info($context, $component, $filearea, $draftid, $filepath, $filename);
     $this->assertNotEmpty($file);
     // Make sure the file does not exist in the user private files.
     $file = $browser->get_file_info($context, $component, 'private', 0, $filepath, $filename);
     $this->assertEmpty($file);
     // Call the external function.
     core_user_external::add_user_private_files($draftid);
     // Make sure the file was added to the user private files.
     $file = $browser->get_file_info($context, $component, 'private', 0, $filepath, $filename);
     $this->assertNotEmpty($file);
 }
 public function test_upload_param_area()
 {
     global $USER;
     $this->resetAfterTest();
     $this->setAdminUser();
     $context = context_user::instance($USER->id);
     $contextid = $context->id;
     $component = "user";
     $filearea = "draft";
     $itemid = 0;
     $filepath = "/";
     $filename = "Simple4.txt";
     $filecontent = base64_encode("Let us create a nice simple file");
     // Make sure exception is thrown.
     $this->setExpectedException("coding_exception");
     core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
 }
예제 #3
0
 public function test_upload_without_new_param()
 {
     global $USER;
     $this->resetAfterTest();
     $this->setAdminUser();
     $context = context_user::instance($USER->id);
     $contextid = $context->id;
     $component = "user";
     $filearea = "private";
     $itemid = 0;
     $filepath = "/";
     $filename = "Simple4.txt";
     $filecontent = base64_encode("Let us create a nice simple file");
     $fileinfo = @core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
     $fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
     // Assert debugging called (deprecation warning).
     $this->assertDebuggingCalled();
     // Make sure the file is created.
     $browser = get_file_browser();
     $file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
     $this->assertNotEmpty($file);
 }
 /**
  * Uploading a file to moodle
  *
  * @param int $contextid
  * @param string $component
  * @param string $filearea
  * @param int $itemid
  * @param string $filepath
  * @param string $filename
  * @param string $filecontent
  * @return array
  * @since Moodle 2.0
  * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more.
  * @see core_files_external::upload()
  */
 public static function upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent)
 {
     return core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
 }
예제 #5
0
 /**
  * Test update_picture
  */
 public function test_update_picture()
 {
     global $DB, $USER;
     $this->resetAfterTest(true);
     $user = self::getDataGenerator()->create_user();
     self::setUser($user);
     $context = context_user::instance($USER->id);
     $contextid = $context->id;
     $filename = "reddot.png";
     $filecontent = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38" . "GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
     // Call the files api to create a file.
     $draftfile = core_files_external::upload($contextid, 'user', 'draft', 0, '/', $filename, $filecontent, null, null);
     $draftid = $draftfile['itemid'];
     // Change user profile image.
     $result = core_user_external::update_picture($draftid);
     $result = external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
     $picture = $DB->get_field('user', 'picture', array('id' => $user->id));
     // The new revision is in the url for the user.
     $this->assertContains($picture, $result['profileimageurl']);
     // Check expected URL for serving the image.
     $this->assertContains("/{$contextid}/user/icon", $result['profileimageurl']);
     // Delete image.
     $result = core_user_external::update_picture(0, true);
     $result = external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
     $picture = $DB->get_field('user', 'picture', array('id' => $user->id));
     // No picture.
     $this->assertEquals(0, $picture);
     // Add again the user profile image (as admin).
     $this->setAdminUser();
     $context = context_user::instance($USER->id);
     $admincontextid = $context->id;
     $draftfile = core_files_external::upload($admincontextid, 'user', 'draft', 0, '/', $filename, $filecontent, null, null);
     $draftid = $draftfile['itemid'];
     $result = core_user_external::update_picture($draftid, false, $user->id);
     $result = external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
     // The new revision is in the url for the user.
     $picture = $DB->get_field('user', 'picture', array('id' => $user->id));
     $this->assertContains($picture, $result['profileimageurl']);
     $this->assertContains("/{$contextid}/user/icon", $result['profileimageurl']);
 }
예제 #6
0
 public function test_upload_param_area()
 {
     global $USER;
     $this->resetAfterTest();
     $this->setAdminUser();
     $context = context_user::instance($USER->id);
     $contextid = $context->id;
     $component = "user";
     $filearea = "draft";
     $itemid = file_get_unused_draft_itemid();
     $filepath = "/";
     $filename = "Simple4.txt";
     $filecontent = base64_encode("Let us create a nice simple file");
     $contextlevel = null;
     $instanceid = null;
     // Make sure the file is created.
     $fileinfo = @core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
     $fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
     $browser = get_file_browser();
     $file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
     $this->assertNotEmpty($file);
 }