Skip to content

Commit

Permalink
Move the tests to their files and rename methods
Browse files Browse the repository at this point in the history
  • Loading branch information
gziolo committed Oct 22, 2023
1 parent bec952e commit fecdb3b
Show file tree
Hide file tree
Showing 3 changed files with 233 additions and 233 deletions.
233 changes: 0 additions & 233 deletions tests/phpunit/tests/block-template-utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,239 +86,6 @@ public function set_up() {
switch_theme( self::TEST_THEME );
}

/**
* @ticket 54335
*
* @covers ::_build_block_template_result_from_post
*/
public function test_build_block_template_result_from_post_template() {
$template = _build_block_template_result_from_post(
self::$template_post,
'wp_template'
);

$this->assertNotWPError( $template );
$this->assertSame( get_stylesheet() . '//my_template', $template->id );
$this->assertSame( get_stylesheet(), $template->theme );
$this->assertSame( 'my_template', $template->slug );
$this->assertSame( 'publish', $template->status );
$this->assertSame( 'custom', $template->source );
$this->assertSame( 'My Template', $template->title );
$this->assertSame( 'Description of my template', $template->description );
$this->assertSame( 'wp_template', $template->type );
$this->assertSame( self::$template_post->post_modified, $template->modified, 'Template result properties match' );
}

/**
* @ticket 54335
*
* @covers ::_build_block_template_result_from_post
*/
public function test_build_block_template_result_from_post_template_part() {
$template_part = _build_block_template_result_from_post(
self::$template_part_post,
'wp_template_part'
);
$this->assertNotWPError( $template_part );
$this->assertSame( get_stylesheet() . '//my_template_part', $template_part->id );
$this->assertSame( get_stylesheet(), $template_part->theme );
$this->assertSame( 'my_template_part', $template_part->slug );
$this->assertSame( 'publish', $template_part->status );
$this->assertSame( 'custom', $template_part->source );
$this->assertSame( 'My Template Part', $template_part->title );
$this->assertSame( 'Description of my template part', $template_part->description );
$this->assertSame( 'wp_template_part', $template_part->type );
$this->assertSame( WP_TEMPLATE_PART_AREA_HEADER, $template_part->area );
$this->assertSame( self::$template_part_post->post_modified, $template_part->modified, 'Template part result properties match' );
}


/**
* @ticket 54335
*
* @covers ::_build_block_template_result_from_file
*/
public function test_build_block_template_result_from_file_template() {
$template = _build_block_template_result_from_file(
array(
'slug' => 'single',
'path' => DIR_TESTDATA . '/templates/template.html',
),
'wp_template'
);

$this->assertSame( get_stylesheet() . '//single', $template->id );
$this->assertSame( get_stylesheet(), $template->theme );
$this->assertSame( 'single', $template->slug );
$this->assertSame( 'publish', $template->status );
$this->assertSame( 'theme', $template->source );
$this->assertSame( 'Single Posts', $template->title );
$this->assertSame( 'Displays single posts on your website unless a custom template has been applied to that post or a dedicated template exists.', $template->description );
$this->assertSame( 'wp_template', $template->type );
$this->assertEmpty( $template->modified );
}

/**
* @ticket 54335
*
* @covers ::_build_block_template_result_from_file
*/
public function test_build_block_template_result_from_file_template_part() {
$template_part = _build_block_template_result_from_file(
array(
'slug' => 'header',
'path' => DIR_TESTDATA . '/templates/template.html',
'area' => WP_TEMPLATE_PART_AREA_HEADER,
),
'wp_template_part'
);
$this->assertSame( get_stylesheet() . '//header', $template_part->id );
$this->assertSame( get_stylesheet(), $template_part->theme );
$this->assertSame( 'header', $template_part->slug );
$this->assertSame( 'publish', $template_part->status );
$this->assertSame( 'theme', $template_part->source );
$this->assertSame( 'header', $template_part->title );
$this->assertSame( '', $template_part->description );
$this->assertSame( 'wp_template_part', $template_part->type );
$this->assertSame( WP_TEMPLATE_PART_AREA_HEADER, $template_part->area );
$this->assertEmpty( $template_part->modified );
}

/**
* @ticket 59325
*
* @covers ::_build_block_template_result_from_file
*/
public function test_build_block_template_result_from_file_template_use_custom_properties() {
$template = _build_block_template_result_from_file(
array(
'slug' => 'custom',
'title' => 'Custom Title',
'path' => DIR_TESTDATA . '/templates/template.html',
),
'wp_template'
);

$this->assertSame( 'custom', $template->slug );
$this->assertSame( 'Custom Title', $template->title );
$this->assertTrue( $template->is_custom );
}

/**
* @ticket 59325
*
* @covers ::_build_block_template_result_from_file
*/
public function test_build_block_template_result_from_file_template_enforce_default_properties() {
$template = _build_block_template_result_from_file(
array(
'slug' => 'single',
'title' => 'Custom title',
'path' => DIR_TESTDATA . '/templates/template.html',
),
'wp_template'
);

$this->assertSame( 'single', $template->slug );
$this->assertSame( 'Single Posts', $template->title );
$this->assertSame( 'Displays single posts on your website unless a custom template has been applied to that post or a dedicated template exists.', $template->description );
$this->assertFalse( $template->is_custom );
}

/**
* @ticket 59325
*
* @covers ::_build_block_template_result_from_file
*/
public function test_build_block_template_result_from_file_template_post_types() {
$template = _build_block_template_result_from_file(
array(
'slug' => 'single',
'postTypes' => array( 'post' ),
'path' => DIR_TESTDATA . '/templates/template.html',
),
'wp_template'
);

$this->assertSameSets( array( 'post' ), $template->post_types );
}

/**
* @ticket 59325
*
* @covers ::_build_block_template_result_from_file
*/
public function test_build_block_template_result_from_file_template_part_ignore_post_types() {
$template = _build_block_template_result_from_file(
array(
'slug' => 'header',
'postTypes' => array( 'post' ),
'path' => DIR_TESTDATA . '/templates/template.html',
),
'wp_template_part'
);

$this->assertEmpty( $template->post_types );
}

/**
* @ticket 59325
*
* @covers ::_build_block_template_result_from_file
*
* @dataProvider data_build_block_template_result_from_file_injects_theme_attribute
*
* @param string $filename The template's filename.
* @param string $expected The expected block markup.
*/
public function test_build_block_template_result_from_file_injects_theme_attribute( $filename, $expected ) {
$template = _build_block_template_result_from_file(
array(
'slug' => 'single',
'path' => DIR_TESTDATA . "/templates/$filename",
),
'wp_template'
);
$this->assertSame( $expected, $template->content );
}

/**
* Data provider.
*
* @return array[]
*/
public function data_build_block_template_result_from_file_injects_theme_attribute() {
$theme = 'block-theme';
return array(
'a template with a template part block' => array(
'filename' => 'template-with-template-part.html',
'expected' => sprintf(
'<!-- wp:template-part {"slug":"header","align":"full","tagName":"header","className":"site-header","theme":"%s"} /-->',
$theme
),
),
'a template with a template part block nested inside another block' => array(
'filename' => 'template-with-nested-template-part.html',
'expected' => sprintf(
'<!-- wp:group -->
<!-- wp:template-part {"slug":"header","align":"full","tagName":"header","className":"site-header","theme":"%s"} /-->
<!-- /wp:group -->',
$theme
),
),
'a template with a template part block with an existing theme attribute' => array(
'filename' => 'template-with-template-part-with-existing-theme-attribute.html',
'expected' => '<!-- wp:template-part {"slug":"header","theme":"fake-theme","align":"full","tagName":"header","className":"site-header"} /-->',
),
'a template with no template part block' => array(
'filename' => 'template.html',
'expected' => '<!-- wp:paragraph -->
<p>Just a paragraph</p>
<!-- /wp:paragraph -->',
),
);
}

/**
* @ticket 59338
*
Expand Down
Loading

0 comments on commit fecdb3b

Please sign in to comment.