Spaces:
No application file
No application file
File size: 3,056 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 106 107 108 |
<?php
declare(strict_types=1);
namespace MauticPlugin\MauticFocusBundle\Tests\Helper;
use Mautic\CoreBundle\Security\Permissions\CorePermissions;
use MauticPlugin\MauticFocusBundle\Entity\Focus;
use MauticPlugin\MauticFocusBundle\Helper\TokenHelper;
use MauticPlugin\MauticFocusBundle\Model\FocusModel;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Routing\RouterInterface;
class TokenHelperTest extends TestCase
{
/**
* @var FocusModel|MockObject
*/
private MockObject $model;
/**
* @var MockObject|RouterInterface
*/
private MockObject $router;
/**
* @var CorePermissions|MockObject
*/
private MockObject $security;
private TokenHelper $helper;
protected function setUp(): void
{
parent::setUp();
$this->model = $this->createMock(FocusModel::class);
$this->router = $this->createMock(RouterInterface::class);
$this->security = $this->createMock(CorePermissions::class);
$this->helper = new TokenHelper($this->model, $this->router, $this->security);
}
public function testFindFocusTokensNotFound(): void
{
$content = 'content';
self::assertSame([], $this->helper->findFocusTokens($content));
}
public function testFindFocusTokensFound(): void
{
$content = 'content {focus=1}';
self::assertSame(['{focus=1}' => ''], $this->helper->findFocusTokens($content));
}
public function testFindFocusTokensFoundAddScriptByFocusPublishedStatus(): void
{
$focusItemId = 1;
$content = "content {focus=$focusItemId}";
$focusItem = new Focus();
$focusItem->setIsPublished(true);
$this->model->expects(self::once())
->method('getEntity')
->with($focusItemId)
->willReturn($focusItem);
self::assertSame(
['{focus=1}' => '<script src="" type="text/javascript" charset="utf-8" async="async"></script>'],
$this->helper->findFocusTokens($content)
);
}
public function testFindFocusTokensFoundAddScriptByAccessCheck(): void
{
$focusItemId = 1;
$createdById = 2;
$content = "content {focus=$focusItemId}";
$focusItem = new Focus();
$focusItem->setIsPublished(false);
$focusItem->setCreatedBy($createdById);
$this->model->expects(self::once())
->method('getEntity')
->with($focusItemId)
->willReturn($focusItem);
$this->security->expects(self::once())
->method('hasEntityAccess')
->with(
'focus:items:viewown',
'focus:items:viewother',
$focusItem->getCreatedBy()
)
->willReturn(true);
self::assertSame(
['{focus=1}' => '<script src="" type="text/javascript" charset="utf-8" async="async"></script>'],
$this->helper->findFocusTokens($content)
);
}
}
|