summaryrefslogtreecommitdiffstats
path: root/apps/theming/tests
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2018-05-24 14:45:49 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2018-05-24 16:26:51 +0200
commit323b665e884b9b8a56ffa404d9af42be1061cb33 (patch)
treed37bdec7c272470d6c3085ac8c9fa49f637c4028 /apps/theming/tests
parent5bd9087cb73af5e1a1dfea33e53028c17ba03ce5 (diff)
downloadnextcloud-server-323b665e884b9b8a56ffa404d9af42be1061cb33.tar.gz
nextcloud-server-323b665e884b9b8a56ffa404d9af42be1061cb33.zip
also add a privacy link
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/theming/tests')
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php2
-rw-r--r--apps/theming/tests/Settings/AdminTest.php10
-rw-r--r--apps/theming/tests/ThemingDefaultsTest.php99
3 files changed, 100 insertions, 11 deletions
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 43f3d1aa2ae..44658c11fe2 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -877,6 +877,7 @@ class ThemingControllerTest extends TestCase {
slogan: "",
color: "#000",
imprintUrl: null,
+ privacyUrl: null,
inverted: false,
cacheBuster: null
};
@@ -912,6 +913,7 @@ class ThemingControllerTest extends TestCase {
slogan: "awesome",
color: "#ffffff",
imprintUrl: null,
+ privacyUrl: null,
inverted: true,
cacheBuster: null
};
diff --git a/apps/theming/tests/Settings/AdminTest.php b/apps/theming/tests/Settings/AdminTest.php
index f1fda94eb2d..b5353c82dcd 100644
--- a/apps/theming/tests/Settings/AdminTest.php
+++ b/apps/theming/tests/Settings/AdminTest.php
@@ -82,6 +82,10 @@ class AdminTest extends TestCase {
->willReturn('');
$this->themingDefaults
->expects($this->once())
+ ->method('getPrivacyUrl')
+ ->willReturn('');
+ $this->themingDefaults
+ ->expects($this->once())
->method('getSlogan')
->willReturn('MySlogan');
$this->themingDefaults
@@ -108,6 +112,7 @@ class AdminTest extends TestCase {
'canThemeIcons' => null,
'iconDocs' => null,
'imprintUrl' => '',
+ 'privacyUrl' => '',
];
$expected = new TemplateResponse('theming', 'settings-admin', $params, '');
@@ -139,6 +144,10 @@ class AdminTest extends TestCase {
->willReturn('');
$this->themingDefaults
->expects($this->once())
+ ->method('getPrivacyUrl')
+ ->willReturn('');
+ $this->themingDefaults
+ ->expects($this->once())
->method('getSlogan')
->willReturn('MySlogan');
$this->themingDefaults
@@ -165,6 +174,7 @@ class AdminTest extends TestCase {
'canThemeIcons' => null,
'iconDocs' => null,
'imprintUrl' => '',
+ 'privacyUrl' => '',
];
$expected = new TemplateResponse('theming', 'settings-admin', $params, '');
diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php
index 9c876b2c0d2..dd0361dc686 100644
--- a/apps/theming/tests/ThemingDefaultsTest.php
+++ b/apps/theming/tests/ThemingDefaultsTest.php
@@ -193,16 +193,16 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('https://example.com/', $this->template->getBaseUrl());
}
- public function imprintUrlProvider() {
+ public function legalUrlProvider() {
return [
[ '' ],
- [ 'https://example.com/imprint.html']
+ [ 'https://example.com/legal.html']
];
}
/**
* @param $imprintUrl
- * @dataProvider imprintUrlProvider
+ * @dataProvider legalUrlProvider
*/
public function testGetImprintURL($imprintUrl) {
$this->config
@@ -214,6 +214,20 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals($imprintUrl, $this->template->getImprintUrl());
}
+ /**
+ * @param $privacyUrl
+ * @dataProvider legalUrlProvider
+ */
+ public function testGetPrivacyURL($privacyUrl) {
+ $this->config
+ ->expects($this->once())
+ ->method('getAppValue')
+ ->with('theming', 'privacyUrl', '')
+ ->willReturn($privacyUrl);
+
+ $this->assertEquals($privacyUrl, $this->template->getPrivacyUrl());
+ }
+
public function testGetSloganWithDefault() {
$this->config
->expects($this->once())
@@ -236,13 +250,14 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooter() {
$this->config
- ->expects($this->exactly(4))
+ ->expects($this->exactly(5))
->method('getAppValue')
->willReturnMap([
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', ''],
+ ['theming', 'privacyUrl', '', ''],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a> – Slogan', $this->template->getShortFooter());
@@ -250,13 +265,14 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterEmptySlogan() {
$this->config
- ->expects($this->exactly(4))
+ ->expects($this->exactly(5))
->method('getAppValue')
->willReturnMap([
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), ''],
['theming', 'imprintUrl', '', ''],
+ ['theming', 'privacyUrl', '', ''],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a>', $this->template->getShortFooter());
@@ -264,13 +280,14 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterImprint() {
$this->config
- ->expects($this->exactly(4))
+ ->expects($this->exactly(5))
->method('getAppValue')
->willReturnMap([
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', 'https://example.com/imprint'],
+ ['theming', 'privacyUrl', '', ''],
]);
$this->l10n
@@ -281,26 +298,86 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a> – Slogan<br/><a href="https://example.com/imprint" class="legal" target="_blank" rel="noreferrer noopener">Legal notice</a>', $this->template->getShortFooter());
}
- public function invalidImprintUrlProvider() {
+ public function testGetShortFooterPrivacy() {
+ $this->config
+ ->expects($this->exactly(5))
+ ->method('getAppValue')
+ ->willReturnMap([
+ ['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
+ ['theming', 'name', 'Nextcloud', 'Name'],
+ ['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
+ ['theming', 'imprintUrl', '', ''],
+ ['theming', 'privacyUrl', '', 'https://example.com/privacy'],
+ ]);
+
+ $this->l10n
+ ->expects($this->any())
+ ->method('t')
+ ->willReturnArgument(0);
+
+ $this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a> – Slogan<br/><a href="https://example.com/privacy" class="legal" target="_blank" rel="noreferrer noopener">Privacy policy</a>', $this->template->getShortFooter());
+ }
+
+ public function testGetShortFooterAllLegalLinks() {
+ $this->config
+ ->expects($this->exactly(5))
+ ->method('getAppValue')
+ ->willReturnMap([
+ ['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
+ ['theming', 'name', 'Nextcloud', 'Name'],
+ ['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
+ ['theming', 'imprintUrl', '', 'https://example.com/imprint'],
+ ['theming', 'privacyUrl', '', 'https://example.com/privacy'],
+ ]);
+
+ $this->l10n
+ ->expects($this->any())
+ ->method('t')
+ ->willReturnArgument(0);
+
+ $this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a> – Slogan<br/><a href="https://example.com/imprint" class="legal" target="_blank" rel="noreferrer noopener">Legal notice</a> · <a href="https://example.com/privacy" class="legal" target="_blank" rel="noreferrer noopener">Privacy policy</a>', $this->template->getShortFooter());
+ }
+
+ public function invalidLegalUrlProvider() {
return [
- ['example.com/imprint'], # missing scheme
- ['https:///imprint'], # missing host
+ ['example.com/legal'], # missing scheme
+ ['https:///legal'], # missing host
];
}
/**
* @param $invalidImprintUrl
- * @dataProvider invalidImprintUrlProvider
+ * @dataProvider invalidLegalUrlProvider
*/
public function testGetShortFooterInvalidImprint($invalidImprintUrl) {
$this->config
- ->expects($this->exactly(4))
+ ->expects($this->exactly(5))
->method('getAppValue')
->willReturnMap([
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', $invalidImprintUrl],
+ ['theming', 'privacyUrl', '', ''],
+ ]);
+
+ $this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a> – Slogan', $this->template->getShortFooter());
+ }
+
+ /**
+ * @param $invalidPrivacyUrl
+ * @dataProvider invalidLegalUrlProvider
+ */
+ public function testGetShortFooterInvalidPrivacy($invalidPrivacyUrl) {
+ $this->config
+ ->expects($this->exactly(5))
+ ->method('getAppValue')
+ ->willReturnMap([
+ ['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
+ ['theming', 'name', 'Nextcloud', 'Name'],
+ ['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
+ ['theming', 'imprintUrl', '', ''],
+ ['theming', 'privacyUrl', '', $invalidPrivacyUrl],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener">Name</a> – Slogan', $this->template->getShortFooter());