wordpress-develop/tests/phpunit/tests/post/formats.php
Sergey Biryukov 164b22cf6a Tests: First pass at using assertSame() instead of assertEquals() in most of the unit tests.
This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Props johnbillion, jrf, SergeyBiryukov.
See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48937 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-02 00:35:36 +00:00

160 lines
5.6 KiB
PHP

<?php
/**
* @group post
*/
class Tests_Post_Formats extends WP_UnitTestCase {
function setUp() {
parent::setUp();
}
function test_set_get_post_format_for_post() {
$post_id = self::factory()->post->create();
$format = get_post_format( $post_id );
$this->assertFalse( $format );
$result = set_post_format( $post_id, 'aside' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 1, count( $result ) );
$format = get_post_format( $post_id );
$this->assertSame( 'aside', $format );
$result = set_post_format( $post_id, 'standard' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 0, count( $result ) );
$result = set_post_format( $post_id, '' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 0, count( $result ) );
}
/**
* @ticket 22473
*/
function test_set_get_post_format_for_page() {
$post_id = self::factory()->post->create( array( 'post_type' => 'page' ) );
$format = get_post_format( $post_id );
$this->assertFalse( $format );
$result = set_post_format( $post_id, 'aside' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 1, count( $result ) );
// The format can be set but not retrieved until it is registered.
$format = get_post_format( $post_id );
$this->assertFalse( $format );
// Register format support for the page post type.
add_post_type_support( 'page', 'post-formats' );
// The previous set can now be retrieved.
$format = get_post_format( $post_id );
$this->assertSame( 'aside', $format );
$result = set_post_format( $post_id, 'standard' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 0, count( $result ) );
$result = set_post_format( $post_id, '' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 0, count( $result ) );
remove_post_type_support( 'page', 'post-formats' );
}
function test_has_format() {
$post_id = self::factory()->post->create();
$this->assertFalse( has_post_format( 'standard', $post_id ) );
$this->assertFalse( has_post_format( '', $post_id ) );
$result = set_post_format( $post_id, 'aside' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 1, count( $result ) );
$this->assertTrue( has_post_format( 'aside', $post_id ) );
$result = set_post_format( $post_id, 'standard' );
$this->assertNotWPError( $result );
$this->assertInternalType( 'array', $result );
$this->assertSame( 0, count( $result ) );
// Standard is a special case. It shows as false when set.
$this->assertFalse( has_post_format( 'standard', $post_id ) );
// Dummy format type.
$this->assertFalse( has_post_format( 'dummy', $post_id ) );
// Dummy post ID.
$this->assertFalse( has_post_format( 'aside', 12345 ) );
}
/**
* @ticket 23570
*/
function test_get_url_in_content() {
$link = 'http://nytimes.com';
$commentary = 'This is my favorite link';
$link_with_commentary = <<<DATA
$link
$commentary
DATA;
$href = '<a href="http://nytimes.com">NYT</a>';
$href_with_commentary = <<<DATA
$href
$commentary
DATA;
$link_post_id = self::factory()->post->create( array( 'post_content' => $link ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $link_post_id ) );
$this->assertFalse( $content_link );
$link_with_post_id = self::factory()->post->create( array( 'post_content' => $link_with_commentary ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $link_with_post_id ) );
$this->assertFalse( $content_link );
$content_link = get_url_in_content( get_post_field( 'post_content', $link_post_id ) );
$this->assertFalse( $content_link );
$content_link = get_url_in_content( get_post_field( 'post_content', $link_with_post_id ) );
$this->assertFalse( $content_link );
$empty_post_id = self::factory()->post->create( array( 'post_content' => '' ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $empty_post_id ) );
$this->assertFalse( $content_link );
$comm_post_id = self::factory()->post->create( array( 'post_content' => $commentary ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $comm_post_id ) );
$this->assertFalse( $content_link );
// Now with an href.
$href_post_id = self::factory()->post->create( array( 'post_content' => $href ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $href_post_id ) );
$this->assertSame( $link, $content_link );
$href_with_post_id = self::factory()->post->create( array( 'post_content' => $href_with_commentary ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $href_with_post_id ) );
$this->assertSame( $link, $content_link );
$content_link = get_url_in_content( get_post_field( 'post_content', $href_post_id ) );
$this->assertSame( $link, $content_link );
$content_link = get_url_in_content( get_post_field( 'post_content', $href_with_post_id ) );
$this->assertSame( $link, $content_link );
$empty_post_id = self::factory()->post->create( array( 'post_content' => '' ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $empty_post_id ) );
$this->assertFalse( $content_link );
$comm_post_id = self::factory()->post->create( array( 'post_content' => $commentary ) );
$content_link = get_url_in_content( get_post_field( 'post_content', $comm_post_id ) );
$this->assertFalse( $content_link );
}
}