Add template integration tests
MAILPOET-6043
This commit is contained in:
committed by
Rostislav Wolný
parent
0a87464b42
commit
5d6d7eba57
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the MailPoet plugin.
|
||||
*
|
||||
* @package MailPoet\EmailEditor
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
namespace MailPoet\EmailEditor\Engine\Templates;
|
||||
|
||||
/**
|
||||
* Integration test for the Template Preview class
|
||||
*/
|
||||
class Template_Preview_Test extends \MailPoetTest {
|
||||
/**
|
||||
* Template preview.
|
||||
*
|
||||
* @var Template_Preview
|
||||
*/
|
||||
private Template_Preview $template_preview;
|
||||
|
||||
/**
|
||||
* Set up before each test
|
||||
*/
|
||||
public function _before() {
|
||||
parent::_before();
|
||||
$this->template_preview = $this->di_container->get( Template_Preview::class );
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it Generates CSS for preview of email theme
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testItCanGetThemePreviewCss(): void {
|
||||
$template_id = 'mailpoet/mailpoet//simple-light';
|
||||
$result = $this->template_preview->get_email_theme_preview_css(
|
||||
array(
|
||||
'id' => $template_id,
|
||||
'wp_id' => null,
|
||||
)
|
||||
);
|
||||
|
||||
verify( $result )->stringContainsString( 'Styles for the email editor.' );
|
||||
verify( $result )->stringContainsString( 'is-layout-email-flex' );
|
||||
verify( $result )->stringContainsString( '.is-root-container { width: 660px; margin: 0 auto; }' ); // Styles for both the email editor and renderer.
|
||||
}
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the MailPoet plugin.
|
||||
*
|
||||
* @package MailPoet\EmailEditor
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
namespace MailPoet\EmailEditor\Engine\Templates;
|
||||
|
||||
/**
|
||||
* Integration test for the Templates class
|
||||
*/
|
||||
class Templates_Test extends \MailPoetTest {
|
||||
|
||||
/**
|
||||
* Templates.
|
||||
*
|
||||
* @var Templates
|
||||
*/
|
||||
private Templates $templates;
|
||||
|
||||
/**
|
||||
* Set up before each test
|
||||
*/
|
||||
public function _before() {
|
||||
parent::_before();
|
||||
$this->templates = $this->di_container->get( Templates::class );
|
||||
$this->templates->initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it can fetch block template
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testItCanFetchBlockTemplate(): void {
|
||||
$template_id = 'mailpoet/mailpoet//email-general';
|
||||
$template = $this->templates->get_block_template( $template_id );
|
||||
|
||||
verify( $template->slug )->equals( 'email-general' );
|
||||
verify( $template->id )->equals( 'mailpoet/mailpoet//email-general' );
|
||||
verify( $template->title )->equals( 'General Email' );
|
||||
verify( $template->description )->equals( 'A general template for emails.' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Test is can fetch template theme
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testItCanFetchTemplateTheme(): void {
|
||||
$template_id = 'mailpoet/mailpoet//simple-light';
|
||||
$theme = $this->templates->get_block_template_theme( $template_id );
|
||||
|
||||
verify( $theme )->arrayCount( 2 );
|
||||
verify( $theme['styles'] )->isArray();
|
||||
verify( $theme['styles']['spacing'] )->isArray();
|
||||
verify( $theme['styles']['spacing']['blockGap'] )->equals( '10px' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it can add block templates
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testItCanAddBlockTemplates(): void {
|
||||
$result = $this->templates->add_block_templates( array(), array( 'post_type' => 'mailpoet_email' ), 'wp_template' );
|
||||
|
||||
verify( $result )->arrayCount( 2 );
|
||||
verify( $result[0]->content )->notEmpty();
|
||||
verify( $result[1]->content )->notEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it can add and update block template details.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testItCanAddBlockTemplateDetails(): void {
|
||||
// add_block_template_details.
|
||||
$basic_template = new \WP_Block_Template();
|
||||
$basic_template->slug = 'simple-light';
|
||||
|
||||
// confirm it has no title or description.
|
||||
verify( $basic_template->title )->equals( '' );
|
||||
verify( $basic_template->description )->equals( '' );
|
||||
|
||||
$result = $this->templates->add_block_template_details( $basic_template );
|
||||
|
||||
// confirm template was updated.
|
||||
verify( $basic_template->title )->equals( 'Simple Light' );
|
||||
verify( $basic_template->description )->equals( 'A basic template with header and footer.' );
|
||||
verify( $result )->equals( $basic_template );
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user