Spaces:
No application file
No application file
File size: 3,929 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
<?php
declare(strict_types=1);
namespace Mautic\LeadBundle\Tests\Helper;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Mautic\CoreBundle\Helper\PathsHelper;
use Mautic\CoreBundle\Twig\Helper\AssetsHelper;
use Mautic\CoreBundle\Twig\Helper\GravatarHelper;
use Mautic\LeadBundle\Entity\Lead;
use Mautic\LeadBundle\Twig\Helper\AvatarHelper;
use Mautic\LeadBundle\Twig\Helper\DefaultAvatarHelper;
use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Asset\Packages;
use Symfony\Component\HttpFoundation\RequestStack;
class AvatarHelperTest extends \PHPUnit\Framework\TestCase
{
private AssetsHelper $assetsHelperMock;
/**
* @var MockObject&PathsHelper
*/
private MockObject $pathsHelperMock;
private GravatarHelper $gravatarHelperMock;
private DefaultAvatarHelper $defaultAvatarHelperMock;
/**
* @var MockObject&Lead
*/
private MockObject $leadMock;
private AvatarHelper $avatarHelper;
protected function setUp(): void
{
$root = realpath(__DIR__.'/../../../../../');
/** @var Packages&MockObject $packagesMock */
$packagesMock = $this->createMock(Packages::class);
/** @var CoreParametersHelper&MockObject $coreParametersHelper */
$coreParametersHelper = $this->createMock(CoreParametersHelper::class);
$this->assetsHelperMock = new AssetsHelper($packagesMock, $coreParametersHelper);
$this->pathsHelperMock = $this->createMock(PathsHelper::class);
$this->pathsHelperMock->method('getSystemPath')
->willReturn('http://localhost');
$this->pathsHelperMock->method('getAssetsPath')
->willReturn($root.'/app/assets');
$this->pathsHelperMock->method('getMediaPath')
->willReturn($root.'/media');
$this->assetsHelperMock->setPathsHelper($this->pathsHelperMock);
$this->defaultAvatarHelperMock = new DefaultAvatarHelper($this->assetsHelperMock);
$this->gravatarHelperMock = new GravatarHelper($this->defaultAvatarHelperMock, $coreParametersHelper, $this->createMock(RequestStack::class));
$this->leadMock = $this->createMock(Lead::class);
$this->avatarHelper = new AvatarHelper($this->assetsHelperMock, $this->pathsHelperMock, $this->gravatarHelperMock, $this->defaultAvatarHelperMock);
}
/**
* Test to get gravatar.
*/
public function testGetAvatarWhenGravatar(): void
{
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1';
$_SERVER['SERVER_PORT'] = '80';
$_SERVER['SERVER_NAME'] = 'localhost';
$_SERVER['REQUEST_URI'] = 'localhost';
$this->leadMock->method('getPreferredProfileImage')
->willReturn('gravatar');
$this->leadMock->method('getSocialCache')
->willReturn([]);
$this->leadMock->method('getEmail')
->willReturn('[email protected]');
$avatar = $this->avatarHelper->getAvatar($this->leadMock);
$this->assertSame('https://www.gravatar.com/avatar/96f1b78c73c1ee806cf6a4168fe9bf77?s=250&d=http%3A%2F%2Flocalhost%2Fimages%2Favatar.svg', $avatar, 'Gravatar image should be returned');
$_SERVER['SERVER_PROTOCOL'] = null;
$_SERVER['SERVER_PORT'] = null;
$_SERVER['SERVER_NAME'] = null;
$_SERVER['REQUEST_URI'] = null;
}
/**
* Test to get default image.
*/
public function testGetAvatarWhenDefault(): void
{
$this->leadMock->method('getPreferredProfileImage')
->willReturn('gravatar');
$this->leadMock->method('getSocialCache')
->willReturn([]);
$this->leadMock->method('getEmail')
->willReturn('');
$avatar = $this->avatarHelper->getAvatar($this->leadMock);
$this->assertSame('http://localhost/images/avatar.svg', $avatar, 'Default image image should be returned');
}
}
|