aboutsummaryrefslogtreecommitdiffstats
path: root/apps/theming
diff options
context:
space:
mode:
authorJulius Haertl <jus@bitgrid.net>2016-07-19 14:39:53 +0200
committerJulius Haertl <jus@bitgrid.net>2016-07-27 19:54:54 +0200
commitacd11729987004edbcb1244577a80585a3d20a21 (patch)
treeb2afb238da9b2a1277d91156242e899ded2bfbc8 /apps/theming
parentd07f04e4f761798a59ef1fc2545950ef4678c53e (diff)
downloadnextcloud-server-acd11729987004edbcb1244577a80585a3d20a21.tar.gz
nextcloud-server-acd11729987004edbcb1244577a80585a3d20a21.zip
Theming: Clean up css generation and fix tests
Diffstat (limited to 'apps/theming')
-rw-r--r--apps/theming/lib/controller/themingcontroller.php42
-rw-r--r--apps/theming/tests/lib/controller/ThemingControllerTest.php100
2 files changed, 87 insertions, 55 deletions
diff --git a/apps/theming/lib/controller/themingcontroller.php b/apps/theming/lib/controller/themingcontroller.php
index 32d96203d62..ed3e23b0c1f 100644
--- a/apps/theming/lib/controller/themingcontroller.php
+++ b/apps/theming/lib/controller/themingcontroller.php
@@ -217,41 +217,39 @@ class ThemingController extends Controller {
$elementColor = Util::elementColor($color);
if($color !== '') {
$responseCss .= sprintf(
- '#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: %s}',
+ '#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: %s}'."\n",
$color
);
- $responseCss .= sprintf('
- input[type="checkbox"].checkbox:checked + label:before {
- background-image:url(\'' . \OC::$WEBROOT . '/core/img/actions/checkmark-white.svg\');
- background-color: %s; background-position: center center; background-size:contain;
- width:12px; height:12px; padding:0; margin:1px 6px 7px 2px;
- }',
+ $responseCss .= sprintf('input[type="checkbox"].checkbox:checked + label:before {' .
+ 'background-image:url(\'' . \OC::$WEBROOT . '/core/img/actions/checkmark-white.svg\');' .
+ 'background-color: %s; background-position: center center; background-size:contain;' .
+ 'width:12px; height:12px; padding:0; margin:1px 6px 7px 2px;' .
+ '}' . PHP_EOL,
$elementColor
);
}
$logo = $this->config->getAppValue($this->appName, 'logoMime');
if($logo !== '') {
- $responseCss .= sprintf('#header .logo {
- background-image: url(\'./logo?v='.$cacheBusterValue.'\');
- background-size: contain;
- }
- #header .logo-icon {
- background-image: url(\'./logo?v='.$cacheBusterValue.'\');
- background-size: contain;
- }'
+ $responseCss .= sprintf(
+ '#header .logo {' .
+ 'background-image: url(\'./logo?v='.$cacheBusterValue.'\')' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL .
+ '#header .logo-icon {' .
+ 'background-image: url(\'./logo?v='.$cacheBusterValue.'\');' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL
);
}
$backgroundLogo = $this->config->getAppValue($this->appName, 'backgroundMime');
if($backgroundLogo !== '') {
- $responseCss .= '#body-login {
- background-image: url(\'./loginbackground?v='.$cacheBusterValue.'\');
- }';
+ $responseCss .= '#body-login {background-image: url(\'./loginbackground?v='.$cacheBusterValue.'\');}' . PHP_EOL;
}
if(Util::invertTextColor($color)) {
- $responseCss .= '#header .header-appname, #expandDisplayName { color: #000000; } ';
- $responseCss .= '#header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); } ';
- $responseCss .= '.searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }';
- $responseCss .= '.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid { color: #000; border: 1px solid rgba(0, 0, 0, .5); }';
+ $responseCss .= '#header .header-appname, #expandDisplayName { color: #000000; }' . PHP_EOL;
+ $responseCss .= '#header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); }' . PHP_EOL;
+ $responseCss .= '.searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }' . PHP_EOL;
+ $responseCss .= '.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid { color: #000; border: 1px solid rgba(0, 0, 0, .5); }' . PHP_EOL;
}
\OC_Response::setExpiresHeader(gmdate('D, d M Y H:i:s', time() + (60*60*24*45)) . ' GMT');
diff --git a/apps/theming/tests/lib/controller/ThemingControllerTest.php b/apps/theming/tests/lib/controller/ThemingControllerTest.php
index 24eb0510f99..5ad6beb18e5 100644
--- a/apps/theming/tests/lib/controller/ThemingControllerTest.php
+++ b/apps/theming/tests/lib/controller/ThemingControllerTest.php
@@ -327,7 +327,13 @@ class ThemingControllerTest extends TestCase {
->with('theming', 'backgroundMime', '')
->willReturn('');
- $expected = new Http\DataDownloadResponse('#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #000}', 'style', 'text/css');
+ $expectedCss = '#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #000}' . PHP_EOL .
+ 'input[type="checkbox"].checkbox:checked + label:before {' .
+ 'background-image:url(\'' . \OC::$WEBROOT . '/core/img/actions/checkmark-white.svg\');' .
+ 'background-color: #000; background-position: center center; background-size:contain;' .
+ 'width:12px; height:12px; padding:0; margin:1px 6px 7px 2px;' .
+ '}' . PHP_EOL;
+ $expected = new Http\DataDownloadResponse($expectedCss, 'style', 'text/css');
$expected->cacheFor(3600);
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}
@@ -354,7 +360,17 @@ class ThemingControllerTest extends TestCase {
->with('theming', 'backgroundMime', '')
->willReturn('');
- $expected = new Http\DataDownloadResponse('#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #fff}#header .header-appname, #expandDisplayName { color: #000000; } #header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); } .searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid { color: #000; border: 1px solid rgba(0, 0, 0, .5); }', 'style', 'text/css');
+ $expectedCss = '#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #fff}' . PHP_EOL .
+ 'input[type="checkbox"].checkbox:checked + label:before {' .
+ 'background-image:url(\'' . \OC::$WEBROOT . '/core/img/actions/checkmark-white.svg\');' .
+ 'background-color: #969696; background-position: center center; background-size:contain;' .
+ 'width:12px; height:12px; padding:0; margin:1px 6px 7px 2px;' .
+ '}' . PHP_EOL .
+ '#header .header-appname, #expandDisplayName { color: #000000; }' . PHP_EOL .
+ '#header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); }' . PHP_EOL .
+ '.searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }' . PHP_EOL .
+ '.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid { color: #000; border: 1px solid rgba(0, 0, 0, .5); }' . PHP_EOL;
+ $expected = new Http\DataDownloadResponse($expectedCss, 'style', 'text/css');
$expected->cacheFor(3600);
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}
@@ -381,14 +397,15 @@ class ThemingControllerTest extends TestCase {
->with('theming', 'backgroundMime', '')
->willReturn('');
- $expected = new Http\DataDownloadResponse('#header .logo {
- background-image: url(\'./logo?v=0\');
- background-size: contain;
- }
- #header .logo-icon {
- background-image: url(\'./logo?v=0\');
- background-size: contain;
- }', 'style', 'text/css');
+ $expectedCss = '#header .logo {' .
+ 'background-image: url(\'./logo?v=0\')' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL .
+ '#header .logo-icon {' .
+ 'background-image: url(\'./logo?v=0\');' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL;
+ $expected = new Http\DataDownloadResponse($expectedCss, 'style', 'text/css');
$expected->cacheFor(3600);
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}
@@ -415,9 +432,8 @@ class ThemingControllerTest extends TestCase {
->with('theming', 'backgroundMime', '')
->willReturn('text/svg');
- $expected = new Http\DataDownloadResponse('#body-login {
- background-image: url(\'./loginbackground?v=0\');
- }', 'style', 'text/css');
+ $expectedCss = '#body-login {background-image: url(\'./loginbackground?v=0\');}' . PHP_EOL;
+ $expected = new Http\DataDownloadResponse($expectedCss, 'style', 'text/css');
$expected->cacheFor(3600);
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}
@@ -444,16 +460,23 @@ class ThemingControllerTest extends TestCase {
->with('theming', 'backgroundMime', '')
->willReturn('image/png');
- $expected = new Http\DataDownloadResponse('#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #000}#header .logo {
- background-image: url(\'./logo?v=0\');
- background-size: contain;
- }
- #header .logo-icon {
- background-image: url(\'./logo?v=0\');
- background-size: contain;
- }#body-login {
- background-image: url(\'./loginbackground?v=0\');
- }', 'style', 'text/css');
+ $expectedCss = '#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #000}' . PHP_EOL .
+ 'input[type="checkbox"].checkbox:checked + label:before {' .
+ 'background-image:url(\'' . \OC::$WEBROOT . '/core/img/actions/checkmark-white.svg\');' .
+ 'background-color: #000; background-position: center center; background-size:contain;' .
+ 'width:12px; height:12px; padding:0; margin:1px 6px 7px 2px;' .
+ '}' . PHP_EOL;
+ $expectedCss .= '#header .logo {' .
+ 'background-image: url(\'./logo?v=0\')' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL .
+ '#header .logo-icon {' .
+ 'background-image: url(\'./logo?v=0\');' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL;
+ $expectedCss .= '#body-login {background-image: url(\'./loginbackground?v=0\');}' . PHP_EOL;
+
+ $expected = new Http\DataDownloadResponse($expectedCss, 'style', 'text/css');
$expected->cacheFor(3600);
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}
@@ -479,16 +502,27 @@ class ThemingControllerTest extends TestCase {
->with('theming', 'backgroundMime', '')
->willReturn('image/png');
- $expected = new Http\DataDownloadResponse('#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #fff}#header .logo {
- background-image: url(\'./logo?v=0\');
- background-size: contain;
- }
- #header .logo-icon {
- background-image: url(\'./logo?v=0\');
- background-size: contain;
- }#body-login {
- background-image: url(\'./loginbackground?v=0\');
- }#header .header-appname, #expandDisplayName { color: #000000; } #header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); } .searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid { color: #000; border: 1px solid rgba(0, 0, 0, .5); }', 'style', 'text/css');
+
+ $expectedCss = '#body-user #header,#body-settings #header,#body-public #header,#body-login,.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid {background-color: #fff}' . PHP_EOL .
+ 'input[type="checkbox"].checkbox:checked + label:before {' .
+ 'background-image:url(\'' . \OC::$WEBROOT . '/core/img/actions/checkmark-white.svg\');' .
+ 'background-color: #969696; background-position: center center; background-size:contain;' .
+ 'width:12px; height:12px; padding:0; margin:1px 6px 7px 2px;' .
+ '}' . PHP_EOL;
+ $expectedCss .= '#header .logo {' .
+ 'background-image: url(\'./logo?v=0\')' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL .
+ '#header .logo-icon {' .
+ 'background-image: url(\'./logo?v=0\');' .
+ 'background-size: contain;' .
+ '}' . PHP_EOL;
+ $expectedCss .= '#body-login {background-image: url(\'./loginbackground?v=0\');}' . PHP_EOL;
+ $expectedCss .= '#header .header-appname, #expandDisplayName { color: #000000; }' . PHP_EOL .
+ '#header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); }' . PHP_EOL .
+ '.searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }' . PHP_EOL .
+ '.searchbox input[type="search"]:focus,.searchbox input[type="search"]:active,.searchbox input[type="search"]:valid { color: #000; border: 1px solid rgba(0, 0, 0, .5); }' . PHP_EOL;
+ $expected = new Http\DataDownloadResponse($expectedCss, 'style', 'text/css');
$expected->cacheFor(3600);
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}