Files
piratepoet/tests/unit/Entities/FormEntityTest.php
Jan Lysý 02e1ce7e4d Remove getFields method from FormEntity
[MAILPOET-3032]
2021-04-12 14:26:36 +02:00

91 lines
2.4 KiB
PHP

<?php
namespace MailPoet\Entities;
class FormEntityTest extends \MailPoetUnitTest {
private $body = [
[
'type' => 'columns',
'body' => [
[
'type' => 'column',
'body' => [
[
'type' => 'paragraph',
'params' => [
'content' => 'Paragraph 1',
],
],
[
'type' => 'divider',
'params' => [],
],
[
'type' => 'paragraph',
'params' => [
'content' => 'Paragraph 2',
],
],
],
],
[
'type' => 'column',
'body' => [
[
'type' => 'paragraph',
'params' => [
'content' => 'Paragraph 3',
],
],
[
'type' => 'heading',
'params' => [
'level' => 1,
'content' => 'Heading 1',
],
],
],
],
],
],
];
public function testGetBlocksByTypes(): void {
$formEntity = new FormEntity('Test' );
$formEntity->setBody($this->body);
$paragraphs = $formEntity->getBlocksByTypes([FormEntity::PARAGRAPH_BLOCK_TYPE]);
expect($paragraphs)->count(3);
expect($paragraphs[0]['params']['content'])->equals('Paragraph 1');
expect($paragraphs[1]['params']['content'])->equals('Paragraph 2');
expect($paragraphs[2]['params']['content'])->equals('Paragraph 3');
$headings = $formEntity->getBlocksByTypes([FormEntity::HEADING_BLOCK_TYPE]);
expect($headings)->count(1);
expect($headings[0]['params']['content'])->equals('Heading 1');
$columns = $formEntity->getBlocksByTypes([FormEntity::COLUMNS_BLOCK_TYPE]);
expect($columns)->count(1);
expect($columns[0]['body'])->count(2);
}
public function testGetSegmentSelectionSegmentIds() {
$formEntity = new FormEntity('Test' );
$formEntity->setBody($this->body);
$segmentIds = $formEntity->getSegmentBlocksSegmentIds();
expect($segmentIds)->isEmpty();
// Add segment selection block to second columns
$body = $this->body;
$body[0]['body'][1]['body'][] = [
'type' => 'segment',
'params' => [
'values' => [['id' => 1], ['id' => 3]],
],
];
$formEntity->setBody($body);
$segmentIds = $formEntity->getSegmentBlocksSegmentIds();
expect($segmentIds)->equals([1, 3]);
}
}