瀏覽代碼

Delete theming images when logo/background is reset to default

Signed-off-by: Julius Härtl <jus@bitgrid.net>
tags/v12.0.0beta1
Julius Härtl 7 年之前
父節點
當前提交
7c69c117e2
沒有連結到貢獻者的電子郵件帳戶。

+ 19
- 0
apps/theming/lib/Controller/ThemingController.php 查看文件

@@ -40,6 +40,7 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\File;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
@@ -265,6 +266,24 @@ class ThemingController extends Controller {
$value = $this->themingDefaults->undo($setting);
// reprocess server scss for preview
$cssCached = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/server.scss', 'core');

if($setting === 'logoMime') {
try {
$file = $this->appData->getFolder('images')->getFile('logo');
$file->delete();
} catch (NotFoundException $e) {
} catch (NotPermittedException $e) {
}
}
if($setting === 'backgroundMime') {
try {
$file = $this->appData->getFolder('images')->getFile('background');
$file->delete();
} catch (NotFoundException $e) {
} catch (NotPermittedException $e) {
}
}

return new DataResponse(
[
'data' =>

+ 50
- 0
apps/theming/tests/Controller/ThemingControllerTest.php 查看文件

@@ -385,6 +385,56 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->undo('MySetting'));
}

public function dataUndoDelete() {
return [
[ 'backgroundMime', 'background' ],
[ 'logoMime', 'logo' ]
];
}

/** @dataProvider dataUndoDelete */
public function testUndoDelete($value, $filename) {
$this->l10n
->expects($this->once())
->method('t')
->with('Saved')
->willReturn('Saved');
$this->themingDefaults
->expects($this->once())
->method('undo')
->with($value)
->willReturn($value);
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
->expects($this->once())
->method('getFolder')
->with('images')
->willReturn($folder);
$folder
->expects($this->once())
->method('getFile')
->with($filename)
->willReturn($file);
$file
->expects($this->once())
->method('delete');

$expected = new DataResponse(
[
'data' =>
[
'value' => $value,
'message' => 'Saved',
],
'status' => 'success'
]
);
$this->assertEquals($expected, $this->themingController->undo($value));
}



public function testGetLogoNotExistent() {
$this->appData->method('getFolder')
->with($this->equalTo('images'))

Loading…
取消
儲存