summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2018-02-03 12:41:21 +0100
committerJulius Härtl <jus@bitgrid.net>2018-02-03 15:21:51 +0100
commitb87e5a0f2e158d7aad91ba8e58b246e3666f6cbf (patch)
treed3c06a29ae403ad2fc042c848931f32af77b8b16
parent5460166ff5440e9750870470afbd861c65b2b41e (diff)
downloadnextcloud-server-b87e5a0f2e158d7aad91ba8e58b246e3666f6cbf.tar.gz
nextcloud-server-b87e5a0f2e158d7aad91ba8e58b246e3666f6cbf.zip
Move depsCache clearing to SCSSCacher/JSCombiner
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r--lib/private/Repair/ClearFrontendCaches.php10
-rw-r--r--lib/private/Template/JSCombiner.php4
-rw-r--r--lib/private/Template/SCSSCacher.php4
-rw-r--r--tests/lib/Repair/ClearFrontendCachesTest.php16
-rw-r--r--tests/lib/Template/JSCombinerTest.php21
-rw-r--r--tests/lib/Template/SCSSCacherTest.php21
6 files changed, 45 insertions, 31 deletions
diff --git a/lib/private/Repair/ClearFrontendCaches.php b/lib/private/Repair/ClearFrontendCaches.php
index 8d109462f6a..0a92aa8d201 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 b95a59834a6..c5adcee6854 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 eee437eaf62..433d5e5d0bf 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 393e1de4f54..7c3a54cf1db 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 d6583d4a450..d5f7000e0a5 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 7b5300b99a9..94d3d5a610e 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();
+ }
+
+
}