wordpress-develop/tests/phpunit/tests/comment/getCommentAuthorEmailLink.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

102 lines
2.7 KiB
PHP

<?php
/**
* @group comment
*/
class Tests_Comment_GetCommentAuthorEmailLink extends WP_UnitTestCase {
public static $comment;
public function setUp() {
parent::setUp();
// Fake the 'comment' global.
$GLOBALS['comment'] = self::$comment;
// Remove obfuscation for testing purposes.
remove_filter( 'comment_email', 'antispambot' );
}
public function tearDown() {
unset( $GLOBALS['comment'] );
parent::tearDown();
add_filter( 'comment_email', 'antispambot' );
}
public static function wpSetUpBeforeClass( $factory ) {
self::$comment = $factory->comment->create_and_get(
array(
'comment_author_email' => 'foo@example.org',
)
);
}
public function test_global_comment_with_default_parameters() {
$expected = '<a href="mailto:foo@example.org">foo@example.org</a>';
$this->assertSame( $expected, get_comment_author_email_link() );
}
/**
* @ticket 36571
*/
public function test_all_parameters() {
unset( $GLOBALS['comment'] );
$linktext = 'linktext';
$before = 'before';
$after = 'after';
$comment = self::factory()->comment->create_and_get(
array(
'comment_author_email' => $email = 'baz@example.org',
)
);
$expected = sprintf( '%1$s<a href="mailto:%2$s">%3$s</a>%4$s', $before, $email, $linktext, $after );
$this->assertSame( $expected, get_comment_author_email_link( $linktext, $before, $after, $comment ) );
}
public function test_all_parameters_with_global_comment() {
$linktext = 'linktext';
$before = 'before';
$after = 'after';
$expected = sprintf( '%1$s<a href="mailto:foo@example.org">%2$s</a>%3$s', $before, $linktext, $after );
$this->assertSame( $expected, get_comment_author_email_link( $linktext, $before, $after ) );
}
public function test_linktext() {
$expected = sprintf( '<a href="mailto:foo@example.org">%1$s</a>', $linktext = 'linktext' );
$this->assertSame( $expected, get_comment_author_email_link( $linktext ) );
}
public function test_before() {
$expected = sprintf( '%1$s<a href="mailto:foo@example.org">foo@example.org</a>', $before = 'before' );
$this->assertSame( $expected, get_comment_author_email_link( '', $before ) );
}
public function test_after() {
$expected = sprintf( '<a href="mailto:foo@example.org">foo@example.org</a>%1$s', $after = 'after' );
$this->assertSame( $expected, get_comment_author_email_link( '', '', $after ) );
}
/**
* @ticket 36571
*/
public function test_comment_param_should_override_global() {
$comment = self::factory()->comment->create_and_get(
array(
'comment_author_email' => $email = 'bar@example.org',
)
);
$expected = sprintf( '<a href="mailto:%1$s">%2$s</a>', $email, $email );
$this->assertSame( $expected, get_comment_author_email_link( '', '', '', $comment ) );
}
}