Do not show an email action for contacts with emtpy email addresses

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst 2017-05-02 14:12:04 +02:00
parent 94c2f12226
commit b13c741cb3
No known key found for this signature in database
GPG Key ID: CC42AC2A7F0E56D8
2 changed files with 28 additions and 0 deletions

View File

@ -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);
}

View File

@ -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);
}
}