Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/21/2021 07:10:20 PM (5 years ago)
Author:
dcavins
Message:

BP_Optout: Ensure email_address is always lowercase.

When adding, updating, or fetching opt-outs,
be sure that the email address string has
been converted to lowercase, else the comparisons
of the hashed values will fail.

See #8448.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/core/optouts.php

    r12898 r12903  
    101101        }
    102102
     103        public function test_bp_optouts_get_by_email_address_mismatched_case() {
     104                $old_current_user = get_current_user_id();
     105
     106                $u1 = $this->factory->user->create();
     107                $this->set_current_user( $u1 );
     108
     109                // Create a couple of optouts.
     110                $args = array(
     111                        'email_address'     => 'ONE@wpfrost.org',
     112                        'user_id'           => $u1,
     113                        'email_type'        => 'annoyance'
     114                );
     115                $i1 = bp_add_optout( $args );
     116                $args['email_address'] = 'two@WP.org';
     117                $i2 = bp_add_optout( $args );
     118
     119                $get_args = array(
     120                        'email_address'  => 'one@WPfrost.org',
     121                        'fields'         => 'ids',
     122                );
     123                $optouts = bp_get_optouts( $get_args );
     124                $this->assertEqualSets( array( $i1 ), $optouts );
     125
     126                $this->set_current_user( $old_current_user );
     127        }
     128
     129        public function test_bp_optouts_get_by_search_terms_mismatched_case() {
     130                $old_current_user = get_current_user_id();
     131
     132                $u1 = $this->factory->user->create();
     133                $this->set_current_user( $u1 );
     134
     135                // Create a couple of optouts.
     136                $args = array(
     137                        'email_address'     => 'ONE@wpfrost.org',
     138                        'user_id'           => $u1,
     139                        'email_type'        => 'annoyance'
     140                );
     141                $i1 = bp_add_optout( $args );
     142                $args['email_address'] = 'two@WP.org';
     143                $i2 = bp_add_optout( $args );
     144
     145                $get_args = array(
     146                        'search_terms'   => 'one@wpfrost.org',
     147                        'fields'         => 'ids',
     148                );
     149                $optouts = bp_get_optouts( $get_args );
     150                $this->assertEqualSets( array( $i1 ), $optouts );
     151
     152                $this->set_current_user( $old_current_user );
     153        }
     154
     155
     156        public function test_bp_optouts_get_by_email_address_mismatched_case_after_update() {
     157                $old_current_user = get_current_user_id();
     158
     159                $u1 = $this->factory->user->create();
     160                $this->set_current_user( $u1 );
     161
     162                // Create an opt-out.
     163                $args = array(
     164                        'email_address'     => 'ONE@wpfrost.org',
     165                        'user_id'           => $u1,
     166                        'email_type'        => 'annoyance'
     167                );
     168                $i1 = bp_add_optout( $args );
     169                // Update it.
     170                $oo_class                = new BP_Optout( $i1 );
     171                $oo_class->email_address = 'One@wpFrost.org';
     172                $oo_class->save();
     173
     174                $get_args = array(
     175                        'email_address'  => 'one@WPfrost.org',
     176                        'fields'         => 'ids',
     177                );
     178                $optouts = bp_get_optouts( $get_args );
     179                $this->assertEqualSets( array( $i1 ), $optouts );
     180
     181                $this->set_current_user( $old_current_user );
     182        }
     183
    103184}
Note: See TracChangeset for help on using the changeset viewer.