wordpress-develop/tests/phpunit/tests/user/wpAuthenticateSpamCheck.php
Jeremy Felt 534f0e92a0 Users: Provide a full user object when checking for a spammy multisite user
`is_user_spammy()` falls back to the current user if one is not provided. There is no current user during authentication, so the result is always `false`. Pass a user to fill the void.

Adds tests for `wp_authenticate_spam_check()`.

Props websupporter.
Fixes #36546.


git-svn-id: https://develop.svn.wordpress.org/trunk@37316 602fd350-edb4-49c9-b593-d223f7449a82
2016-04-27 05:35:37 +00:00

47 lines
1.5 KiB
PHP

<?php
/**
* @group user
*/
class Tests_User_WpAuthenticateSpamCheck extends WP_UnitTestCase {
function test_wp_authenticate_spam_check_returns_user_when_single_site() {
if ( is_multisite() ) {
$this->markTestSkipped( 'This test applies to single site only.' );
}
$user_id = self::factory()->user->create( array( 'role' => 'contributor' ) );
$user = new WP_User( $user_id );
$actual_user = wp_authenticate_spam_check( $user );
wp_delete_user( $user_id );
$this->assertEquals( $user->user_login, $actual_user->user_login );
}
function test_wp_authenticate_spam_check_returns_user_when_not_flagged() {
if ( ! is_multisite() ) {
$this->markTestSkipped( 'This test applies to multisite only.' );
}
$user_id = self::factory()->user->create( array( 'role' => 'contributor' ) );
$user = new WP_User( $user_id );
$actual_user = wp_authenticate_spam_check( $user );
wpmu_delete_user( $user_id );
$this->assertEquals( $user->user_login, $actual_user->user_login );
}
function test_wp_authenticate_spam_check_returns_wp_error_when_flagged() {
if ( ! is_multisite() ) {
$this->markTestSkipped( 'This test applies to multisite only.' );
}
$user_id = self::factory()->user->create( array( 'role' => 'contributor' ) );
update_user_status( $user_id, 'spam', 1 );
$user = new WP_User( $user_id );
$actual_user = wp_authenticate_spam_check( $user );
wpmu_delete_user( $user_id );
$this->assertInstanceOf( 'WP_Error', $actual_user );
}
}