Multisite: Validate email before checking against banned domains.

Previously, an invalid email could result in an undefined index when attempting to determine the email domain.

Props ocean90.
See #39915.


git-svn-id: https://develop.svn.wordpress.org/trunk@40594 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jeremy Felt
2017-05-09 16:32:53 +00:00
parent 4678a2c00e
commit 3e9c46812c
2 changed files with 40 additions and 5 deletions

View File

@@ -122,6 +122,41 @@ class Tests_Multisite_WpmuValidateUserSignup extends WP_UnitTestCase {
$this->assertNotContains( 'user_email', $v['errors']->get_error_codes() );
}
public function test_invalid_email_address_with_no_banned_domains_results_in_error() {
$valid = wpmu_validate_user_signup( 'validusername', 'invalid-email' );
$this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
}
public function test_invalid_email_address_with_banned_domains_results_in_error() {
update_site_option( 'banned_email_domains', "bar.com" );
$valid = wpmu_validate_user_signup( 'validusername', 'invalid-email' );
delete_site_option( 'banned_email_domains' );
$this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
}
public function test_incomplete_email_address_with_no_banned_domains_results_in_error() {
$valid = wpmu_validate_user_signup( 'validusername', 'incomplete@email' );
$this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
}
public function test_valid_email_address_matching_banned_domain_results_in_error() {
update_site_option( 'banned_email_domains', "bar.com" );
$valid = wpmu_validate_user_signup( 'validusername', 'email@bar.com' );
delete_site_option( 'banned_email_domains' );
$this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
}
public function test_valid_email_address_not_matching_banned_domain_returns_in_success() {
update_site_option( 'banned_email_domains', "bar.com" );
$valid = wpmu_validate_user_signup( 'validusername', 'email@example.com' );
delete_site_option( 'banned_email_domains' );
$this->assertNotContains( 'user_email', $valid['errors']->get_error_codes() );
}
}
endif;