// remove event handlers and dequeue pending events
events_uninstall($component);
+ // Delete all remaining files in the filepool owned by the component.
+ $fs = get_file_storage();
+ $fs->delete_component_files($component);
+
// Finally purge all caches.
purge_all_caches();
$filerecords->close();
}
+ /**
+ * Delete all files associated with the given component.
+ *
+ * @param string $component the component owning the file
+ */
+ public function delete_component_files($component) {
+ global $DB;
+
+ $filerecords = $DB->get_recordset('files', array('component' => $component));
+ foreach ($filerecords as $filerecord) {
+ $this->get_file_instance($filerecord)->delete();
+ }
+ $filerecords->close();
+ }
+
/**
* Move all the files in a file area from one context to another.
*
$this->assertEquals(0, count($areafiles));
}
+ public function test_delete_component_files() {
+ $user = $this->setup_three_private_files();
+ $fs = get_file_storage();
+
+ $areafiles = $fs->get_area_files($user->ctxid, 'user', 'private');
+ $this->assertEquals(4, count($areafiles));
+ $fs->delete_component_files('user');
+ $areafiles = $fs->get_area_files($user->ctxid, 'user', 'private');
+ $this->assertEquals(0, count($areafiles));
+ }
+
public function test_create_file_from_url() {
$this->resetAfterTest(true);