Make WordPress Core


Ignore:
Timestamp:
05/09/2017 04:32:53 PM (9 years ago)
Author:
jeremyfelt
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/multisite/wpmuValidateUserSignup.php

    r35242 r40594  
    123123        }
    124124
     125        public function test_invalid_email_address_with_no_banned_domains_results_in_error() {
     126                $valid = wpmu_validate_user_signup( 'validusername', 'invalid-email' );
     127
     128                $this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
     129        }
     130
     131        public function test_invalid_email_address_with_banned_domains_results_in_error() {
     132                update_site_option( 'banned_email_domains', "bar.com" );
     133                $valid = wpmu_validate_user_signup( 'validusername', 'invalid-email' );
     134                delete_site_option( 'banned_email_domains' );
     135
     136                $this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
     137        }
     138
     139        public function test_incomplete_email_address_with_no_banned_domains_results_in_error() {
     140                $valid = wpmu_validate_user_signup( 'validusername', 'incomplete@email' );
     141
     142                $this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
     143        }
     144
     145        public function test_valid_email_address_matching_banned_domain_results_in_error() {
     146                update_site_option( 'banned_email_domains', "bar.com" );
     147                $valid = wpmu_validate_user_signup( 'validusername', 'email@bar.com' );
     148                delete_site_option( 'banned_email_domains' );
     149
     150                $this->assertContains( 'user_email', $valid['errors']->get_error_codes() );
     151        }
     152
     153        public function test_valid_email_address_not_matching_banned_domain_returns_in_success() {
     154                update_site_option( 'banned_email_domains', "bar.com" );
     155                $valid = wpmu_validate_user_signup( 'validusername', 'email@example.com' );
     156                delete_site_option( 'banned_email_domains' );
     157
     158                $this->assertNotContains( 'user_email', $valid['errors']->get_error_codes() );
     159        }
    125160}
    126161
Note: See TracChangeset for help on using the changeset viewer.