Merge pull request #18977 from owncloud/fix-mimetype-reset
Add reset method to mimetype loader
This commit is contained in:
commit
0468a7dfd4
|
@ -377,7 +377,7 @@ class Scanner extends BasicEmitter {
|
|||
// inserted mimetypes but those weren't available yet inside the transaction
|
||||
// To make sure to have the updated mime types in such cases,
|
||||
// we reload them here
|
||||
$this->cache->loadMimetypes();
|
||||
\OC::$server->getMimeTypeLoader()->reset();
|
||||
}
|
||||
|
||||
foreach ($childQueue as $child => $childData) {
|
||||
|
|
|
@ -96,6 +96,14 @@ class Loader implements IMimeTypeLoader {
|
|||
return isset($this->mimetypeIds[$mimetype]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all loaded mimetypes, allow for re-loading
|
||||
*/
|
||||
public function reset() {
|
||||
$this->mimetypes = [];
|
||||
$this->mimetypeIds = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a mimetype in the DB
|
||||
*
|
||||
|
|
|
@ -56,4 +56,11 @@ interface IMimeTypeLoader {
|
|||
* @since 8.2.0
|
||||
*/
|
||||
public function exists($mimetype);
|
||||
|
||||
/**
|
||||
* Clear all loaded mimetypes, allow for re-loading
|
||||
*
|
||||
* @since 8.2.0
|
||||
*/
|
||||
public function reset();
|
||||
}
|
||||
|
|
|
@ -24,13 +24,7 @@ class RepairMimeTypes extends \Test\TestCase {
|
|||
parent::setUp();
|
||||
|
||||
$this->savedMimetypeLoader = \OC::$server->getMimeTypeLoader();
|
||||
$this->mimetypeLoader = $this->getMockBuilder('\OC\Files\Type\Loader')
|
||||
->setConstructorArgs([\OC::$server->getDatabaseConnection()])
|
||||
->setMethods(null)
|
||||
->getMock();
|
||||
\OC::$server->registerService('MimeTypeLoader', function ($c) {
|
||||
return $this->mimetypeLoader;
|
||||
});
|
||||
$this->mimetypeLoader = \OC::$server->getMimeTypeLoader();
|
||||
|
||||
$this->storage = new \OC\Files\Storage\Temporary([]);
|
||||
$this->repair = new \OC\Repair\RepairMimeTypes();
|
||||
|
@ -42,16 +36,13 @@ class RepairMimeTypes extends \Test\TestCase {
|
|||
\OC_DB::executeAudited($sql, [$this->storage->getId()]);
|
||||
$this->clearMimeTypes();
|
||||
|
||||
\OC::$server->registerService('MimeTypeLoader', function($c) {
|
||||
return $this->savedMimetypeLoader;
|
||||
});
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
private function clearMimeTypes() {
|
||||
$sql = 'DELETE FROM `*PREFIX*mimetypes`';
|
||||
\OC_DB::executeAudited($sql);
|
||||
$this->mimetypeLoader->reset();
|
||||
}
|
||||
|
||||
private function addEntries($entries) {
|
||||
|
@ -97,7 +88,7 @@ class RepairMimeTypes extends \Test\TestCase {
|
|||
$this->repair->run();
|
||||
|
||||
// force mimetype reload
|
||||
self::invokePrivate($this->mimetypeLoader, 'loadMimetypes');
|
||||
$this->mimetypeLoader->reset();
|
||||
|
||||
$this->checkEntries($fixedMimeTypes);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue