Browse Source
Move depsCache clearing to SCSSCacher/JSCombiner
Signed-off-by: Julius Härtl <jus@bitgrid.net>
pull/8144/head
Julius Härtl
8 years ago
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
6 changed files with
45 additions and
31 deletions
-
lib/private/Repair/ClearFrontendCaches.php
-
lib/private/Template/JSCombiner.php
-
lib/private/Template/SCSSCacher.php
-
tests/lib/Repair/ClearFrontendCachesTest.php
-
tests/lib/Template/JSCombinerTest.php
-
tests/lib/Template/SCSSCacherTest.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'); |
|
|
|
|
|
@ -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(); |
|
|
|
|
|
@ -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(); |
|
|
|
|
|
@ -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); |
|
|
|
|
|
@ -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(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
@ -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(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |