Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace MauticPlugin\MauticFocusBundle\Tests\Controller\Api; | |
use Mautic\CoreBundle\Test\MauticMysqlTestCase; | |
use PHPUnit\Framework\Assert; | |
use Symfony\Component\HttpFoundation\Request; | |
use Symfony\Component\HttpFoundation\Response; | |
final class FocusApiControllerTest extends MauticMysqlTestCase | |
{ | |
/** | |
* @var array<string,mixed> | |
*/ | |
private array $testPayload = [ | |
'name' => 'test', | |
'type' => 'notice', | |
'website' => 'http://', | |
'style' => 'bar', | |
'htmlMode' => 1, | |
'html' => '<div><strong style="color:red">html mode enabled</strong></div>', | |
'properties' => [ | |
'bar' => [ | |
'allow_hide' => 1, | |
'sticky' => 1, | |
'size' => 'large', | |
'placement' => 'top', | |
], | |
'modal' => [ | |
'placement' => 'top', | |
], | |
'notification' => [ | |
'placement' => 'top_left', | |
], | |
'animate' => 1, | |
'link_activation' => 1, | |
'colors' => [ | |
'primary' => '27184e', | |
], | |
'content' => [ | |
'headline' => '', | |
'font' => 'Arial, Helvetica, sans-serif', | |
], | |
'when' => 'immediately', | |
'frequency' => 'everypage', | |
'stop_after_conversion' => 1, | |
], | |
]; | |
public function testFocusApiNew(): void | |
{ | |
// Create a focus item. | |
$this->client->request(Request::METHOD_POST, '/api/focus/new', $this->testPayload); | |
$response = $this->client->getResponse(); | |
$this->assertEquals(Response::HTTP_CREATED, $response->getStatusCode(), $response->getContent()); | |
$createdItem = json_decode($response->getContent(), true)['focus']; | |
Assert::assertNotEmpty($createdItem['id'], $response->getContent()); | |
Assert::assertSame($this->testPayload['name'], $createdItem['name'], $response->getContent()); | |
} | |
} | |