diff --git a/packages/php/email-editor/tests/integration/Engine/Templates/Template_Preview_Test.php b/packages/php/email-editor/tests/integration/Engine/Templates/Template_Preview_Test.php new file mode 100644 index 0000000000..18559a3ecb --- /dev/null +++ b/packages/php/email-editor/tests/integration/Engine/Templates/Template_Preview_Test.php @@ -0,0 +1,48 @@ +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. + } +} diff --git a/packages/php/email-editor/tests/integration/Engine/Templates/Templates_Test.php b/packages/php/email-editor/tests/integration/Engine/Templates/Templates_Test.php new file mode 100644 index 0000000000..695a30ba98 --- /dev/null +++ b/packages/php/email-editor/tests/integration/Engine/Templates/Templates_Test.php @@ -0,0 +1,96 @@ +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 ); + } +}