summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2017-05-02 17:02:16 +0200
committerGitHub <noreply@github.com>2017-05-02 17:02:16 +0200
commit121cb4bcfcc696006036f93bdc1b946d8e4e3e95 (patch)
tree938e09b4492e28b6c7de22efb8b6674abf66299f
parent68a1902586ab52bfddee94dd6adb276ff2df34a2 (diff)
parentb13c741cb3471f4f2df579b81e0bb5ebe56fff95 (diff)
downloadnextcloud-server-121cb4bcfcc696006036f93bdc1b946d8e4e3e95.tar.gz
nextcloud-server-121cb4bcfcc696006036f93bdc1b946d8e4e3e95.zip
Merge pull request #4659 from nextcloud/fix/ignore-empty-email-contacts-menu
Do not show an email action for contacts with emtpy email addresses
-rw-r--r--lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php4
-rw-r--r--tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php24
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php
index d5630e6420d..242fbd06a22 100644
--- a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php
+++ b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php
@@ -52,6 +52,10 @@ class EMailProvider implements IProvider {
public function process(IEntry $entry) {
$iconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mail.svg'));
foreach ($entry->getEMailAddresses() as $address) {
+ if (empty($address)) {
+ // Skip
+ continue;
+ }
$action = $this->actionFactory->newEMailAction($iconUrl, $address, $address);
$entry->addAction($action);
}
diff --git a/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php b/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php
index 2d82fa5d68e..353c8d6f58f 100644
--- a/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php
+++ b/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php
@@ -79,4 +79,28 @@ class EMailproviderTest extends TestCase {
$this->provider->process($entry);
}
+ public function testProcessEmptyAddress() {
+ $entry = $this->createMock(IEntry::class);
+ $action = $this->createMock(ILinkAction::class);
+ $iconUrl = 'https://example.com/img/actions/icon.svg';
+ $this->urlGenerator->expects($this->once())
+ ->method('imagePath')
+ ->willReturn('img/actions/icon.svg');
+ $this->urlGenerator->expects($this->once())
+ ->method('getAbsoluteURL')
+ ->with('img/actions/icon.svg')
+ ->willReturn($iconUrl);
+ $entry->expects($this->once())
+ ->method('getEMailAddresses')
+ ->willReturn([
+ '',
+ ]);
+ $this->actionFactory->expects($this->never())
+ ->method('newEMailAction');
+ $entry->expects($this->never())
+ ->method('addAction');
+
+ $this->provider->process($entry);
+ }
+
}