diff --git a/lib/private/Repair/ClearFrontendCaches.php b/lib/private/Repair/ClearFrontendCaches.php index 8d109462f6..0a92aa8d20 100644 --- a/lib/private/Repair/ClearFrontendCaches.php +++ b/lib/private/Repair/ClearFrontendCaches.php @@ -23,15 +23,11 @@ namespace OC\Repair; -use OC\Core\Command\Maintenance\ClearCacheJSCSS; use OC\Template\JSCombiner; use OC\Template\SCSSCacher; -use OCP\AppFramework\QueryException; use OCP\ICacheFactory; use OCP\Migration\IOutput; use OCP\Migration\IRepairStep; -use Symfony\Component\Console\Input\StringInput; -use Symfony\Component\Console\Output\BufferedOutput; class ClearFrontendCaches implements IRepairStep { @@ -59,17 +55,13 @@ class ClearFrontendCaches implements IRepairStep { public function run(IOutput $output) { try { $c = $this->cacheFactory->createDistributed('imagePath'); - $c->clear(''); + $c->clear(); $output->info('Image cache cleared'); $this->scssCacher->resetCache(); - $c = $this->cacheFactory->createDistributed('SCSS'); - $c->clear(''); $output->info('SCSS cache cleared'); $this->jsCombiner->resetCache(); - $c = $this->cacheFactory->createDistributed('JS'); - $c->clear(''); $output->info('JS cache cleared'); } catch (\Exception $e) { $output->warning('Unable to clear the frontend cache'); diff --git a/lib/private/Template/JSCombiner.php b/lib/private/Template/JSCombiner.php index b95a59834a..c5adcee685 100644 --- a/lib/private/Template/JSCombiner.php +++ b/lib/private/Template/JSCombiner.php @@ -236,10 +236,8 @@ class JSCombiner { * @throws NotFoundException */ public function resetCache() { + $this->depsCache->clear(); $appDirectory = $this->appData->getDirectoryListing(); - if(empty($appDirectory)){ - return; - } foreach ($appDirectory as $folder) { foreach ($folder->getDirectoryListing() as $file) { $file->delete(); diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php index eee437eaf6..433d5e5d0b 100644 --- a/lib/private/Template/SCSSCacher.php +++ b/lib/private/Template/SCSSCacher.php @@ -263,10 +263,8 @@ class SCSSCacher { */ public function resetCache() { $this->injectedVariables = null; + $this->depsCache->clear(); $appDirectory = $this->appData->getDirectoryListing(); - if(empty($appDirectory)){ - return; - } foreach ($appDirectory as $folder) { foreach ($folder->getDirectoryListing() as $file) { $file->delete(); diff --git a/tests/lib/Repair/ClearFrontendCachesTest.php b/tests/lib/Repair/ClearFrontendCachesTest.php index 393e1de4f5..7c3a54cf1d 100644 --- a/tests/lib/Repair/ClearFrontendCachesTest.php +++ b/tests/lib/Repair/ClearFrontendCachesTest.php @@ -63,14 +63,6 @@ class ClearFrontendCachesTest extends \Test\TestCase { $imagePathCache->expects($this->once()) ->method('clear') ->with(''); - $jsCache = $this->createMock(ICache::class); - $jsCache->expects($this->once()) - ->method('clear') - ->with(''); - $cssCache = $this->createMock(ICache::class); - $cssCache->expects($this->once()) - ->method('clear') - ->with(''); $this->jsCombiner->expects($this->once()) ->method('resetCache'); $this->scssCacher->expects($this->once()) @@ -79,14 +71,6 @@ class ClearFrontendCachesTest extends \Test\TestCase { ->method('createDistributed') ->with('imagePath') ->willReturn($imagePathCache); - $this->cacheFactory->expects($this->at(1)) - ->method('createDistributed') - ->with('SCSS') - ->willReturn($cssCache); - $this->cacheFactory->expects($this->at(2)) - ->method('createDistributed') - ->with('JS') - ->willReturn($jsCache); $this->repair->run($this->outputMock); $this->assertTrue(true); diff --git a/tests/lib/Template/JSCombinerTest.php b/tests/lib/Template/JSCombinerTest.php index d6583d4a45..d5f7000e0a 100644 --- a/tests/lib/Template/JSCombinerTest.php +++ b/tests/lib/Template/JSCombinerTest.php @@ -511,4 +511,25 @@ var b = \'world\'; $expected = []; $this->assertEquals($expected, $this->jsCombiner->getContent($pathInfo['dirname'], $pathInfo['basename'])); } + + public function testResetCache() { + $file = $this->createMock(ISimpleFile::class); + $file->expects($this->once()) + ->method('delete'); + + $folder = $this->createMock(ISimpleFolder::class); + $folder->expects($this->once()) + ->method('getDirectoryListing') + ->willReturn([$file]); + + $this->depsCache->expects($this->once()) + ->method('clear') + ->with(''); + $this->appData->expects($this->once()) + ->method('getDirectoryListing') + ->willReturn([$folder]); + + $this->jsCombiner->resetCache(); + } + } diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php index 7b5300b99a..94d3d5a610 100644 --- a/tests/lib/Template/SCSSCacherTest.php +++ b/tests/lib/Template/SCSSCacherTest.php @@ -445,4 +445,25 @@ class SCSSCacherTest extends \Test\TestCase { $this->rrmdir($tmpDir.$path); } + public function testResetCache() { + $file = $this->createMock(ISimpleFile::class); + $file->expects($this->once()) + ->method('delete'); + + $folder = $this->createMock(ISimpleFolder::class); + $folder->expects($this->once()) + ->method('getDirectoryListing') + ->willReturn([$file]); + + $this->depsCache->expects($this->once()) + ->method('clear') + ->with(''); + $this->appData->expects($this->once()) + ->method('getDirectoryListing') + ->willReturn([$folder]); + + $this->scssCacher->resetCache(); + } + + }