Changeset 13984
- Timestamp:
- 07/27/2024 07:01:02 PM (10 months ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-members/bp-members-functions.php
r13983 r13984 1622 1622 // Note: This check only works on Multisite. 1623 1623 $limited_email_domains = get_site_option( 'limited_email_domains' ); 1624 if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false) {1624 if ( is_array( $limited_email_domains ) && ! empty( $limited_email_domains ) ) { 1625 1625 $emaildomain = substr( $user_email, 1 + strpos( $user_email, '@' ) ); 1626 if ( ! in_array( $emaildomain, $limited_email_domains ) ) { 1626 1627 if ( ! in_array( $emaildomain, $limited_email_domains, true ) ) { 1627 1628 $errors['domain_not_allowed'] = 1; 1628 1629 } … … 1634 1635 } 1635 1636 1636 $retval = ! empty( $errors ) ? $errors : true; 1637 1638 return $retval; 1637 return ! empty( $errors ) ? $errors : true; 1639 1638 } 1640 1639 … … 1713 1712 // User name can't be on the list of illegal names. 1714 1713 $illegal_names = get_site_option( 'illegal_names' ); 1715 if ( in_array( $user_name, (array) $illegal_names ) ) {1716 $errors->add( 'user_name', __( 'That username is not allowed ', 'buddypress' ) );1714 if ( in_array( $user_name, (array) $illegal_names, true ) ) { 1715 $errors->add( 'user_name', __( 'That username is not allowed.', 'buddypress' ) ); 1717 1716 } 1718 1717 … … 1724 1723 // Minimum of 4 characters. 1725 1724 if ( strlen( $user_name ) < 4 ) { 1726 $errors->add( 'user_name', __( 'Username must be at least 4 characters', 'buddypress' ) ); 1725 $errors->add( 'user_name', __( 'Username must be at least 4 characters.', 'buddypress' ) ); 1726 } 1727 1728 // Maximum of 60 characters. 1729 if ( strlen( $user_name ) > 60 ) { 1730 $errors->add( 'user_name', __( 'Username may not be longer than 60 characters.', 'buddypress' ) ); 1727 1731 } 1728 1732 1729 1733 // No underscores. @todo Why not? 1730 if ( false !== strpos( ' ' . $user_name, '_' ) ) {1734 if ( str_contains( ' ' . $user_name, '_' ) ) { 1731 1735 $errors->add( 'user_name', __( 'Sorry, usernames may not contain the character "_"!', 'buddypress' ) ); 1732 1736 } … … 1735 1739 $match = array(); 1736 1740 preg_match( '/[0-9]*/', $user_name, $match ); 1737 if ( $match[0] == $user_name ) { 1741 1742 // Check for valid letters. 1743 $valid_letters = preg_match( '/[a-zA-Z]+/', $user_name ); 1744 1745 if ( $match[0] === $user_name || ! $valid_letters ) { 1738 1746 $errors->add( 'user_name', __( 'Sorry, usernames must have letters too!', 'buddypress' ) ); 1739 1747 } 1740 1748 1741 1749 // Check into signups. 1742 $signups = BP_Signup::get( array( 1743 'user_login' => $user_name, 1744 ) ); 1750 $signups = BP_Signup::get( 1751 array( 1752 'user_login' => $user_name, 1753 ) 1754 ); 1745 1755 1746 1756 $signup = isset( $signups['signups'] ) && ! empty( $signups['signups'][0] ) ? $signups['signups'][0] : false; -
trunk/tests/phpunit/testcases/members/functions.php
r13981 r13984 6 6 class BP_Tests_Members_Functions extends BP_UnitTestCase { 7 7 protected $permalink_structure = ''; 8 protected $filter_fired = '';8 protected $filter_fired = ''; 9 9 10 10 public function set_up() { … … 25 25 public function test_bp_core_delete_account() { 26 26 // Stash 27 $current_user = get_current_user_id();27 $current_user = get_current_user_id(); 28 28 $deletion_disabled = bp_disable_account_deletion(); 29 29 … … 33 33 34 34 // 1. Admin can delete user account 35 self::set_current_user( $admin_user );35 $this->set_current_user( $admin_user ); 36 36 $user1 = self::factory()->user->create( array( 'role' => 'subscriber' ) ); 37 37 bp_core_delete_account( $user1 ); … … 52 52 $user3 = self::factory()->user->create( array( 'role' => 'subscriber' ) ); 53 53 $user4 = self::factory()->user->create( array( 'role' => 'subscriber' ) ); 54 self::set_current_user( $user3 );54 $this->set_current_user( $user3 ); 55 55 bp_core_delete_account( $user4 ); 56 56 $maybe_user = new WP_User( $user4 ); … … 59 59 60 60 // Cleanup 61 self::set_current_user( $current_user );61 $this->set_current_user( $current_user ); 62 62 bp_update_option( 'bp-disable-account-deletion', $deletion_disabled ); 63 63 } … … 136 136 137 137 // Now change the members directory slug 138 $pages = bp_core_get_directory_pages();139 $members_page = get_post( $pages->members->id );140 $new_members_slug = 'new-members-slug';138 $pages = bp_core_get_directory_pages(); 139 $members_page = get_post( $pages->members->id ); 140 $new_members_slug = 'new-members-slug'; 141 141 $members_page->post_name = $new_members_slug; 142 $p = wp_update_post( $members_page );142 $p = wp_update_post( $members_page ); 143 143 144 144 // Weird! … … 185 185 */ 186 186 public function test_bp_core_get_user_displayname_xprofile_exists() { 187 $xprofile_is_active = bp_is_active( 'xprofile' );187 $xprofile_is_active = bp_is_active( 'xprofile' ); 188 188 buddypress()->active_components['xprofile'] = '1'; 189 189 … … 202 202 */ 203 203 public function test_bp_core_get_user_displayname_arrays_all_bad_entries() { 204 $this->assertSame( array(), bp_core_get_user_displaynames( array( 0, 'foo' ,) ) );204 $this->assertSame( array(), bp_core_get_user_displaynames( array( 0, 'foo' ) ) ); 205 205 } 206 206 … … 219 219 ); 220 220 221 $this->assertSame( $expected, bp_core_get_user_displaynames( array( $u1, $u2 ,) ) );221 $this->assertSame( $expected, bp_core_get_user_displaynames( array( $u1, $u2 ) ) ); 222 222 } 223 223 … … 227 227 public function test_bp_core_get_user_displaynames_one_not_in_xprofile() { 228 228 $u1 = self::factory()->user->create(); 229 $u2 = self::factory()->user->create( array( 230 'display_name' => 'Bar', 231 ) ); 229 $u2 = self::factory()->user->create( 230 array( 231 'display_name' => 'Bar', 232 ) 233 ); 232 234 xprofile_set_field_data( 1, $u1, 'Foo' ); 233 235 … … 237 239 ); 238 240 239 $this->assertSame( $expected, bp_core_get_user_displaynames( array( $u1, $u2 ,) ) );241 $this->assertSame( $expected, bp_core_get_user_displaynames( array( $u1, $u2 ) ) ); 240 242 } 241 243 … … 244 246 */ 245 247 public function test_bp_members_migrate_signups_standard() { 246 $u = self::factory()->user->create();248 $u = self::factory()->user->create(); 247 249 $u_obj = new WP_User( $u ); 248 250 … … 254 256 $wpdb->update( 255 257 $wpdb->users, 256 array( 'user_status' => '2' ,),257 array( 'ID' => $u ,),258 array( '%d' ,),259 array( '%d' ,)258 array( 'user_status' => '2' ), 259 array( 'ID' => $u ), 260 array( '%d' ), 261 array( '%d' ) 260 262 ); 261 263 clean_user_cache( $u ); … … 278 280 */ 279 281 public function test_bp_members_migrate_signups_activation_key_but_user_status_0() { 280 $u = self::factory()->user->create();282 $u = self::factory()->user->create(); 281 283 $u_obj = new WP_User( $u ); 282 284 … … 291 293 $wpdb->update( 292 294 $wpdb->users, 293 array( 'user_status' => '0' ,),294 array( 'ID' => $u ,),295 array( '%d' ,),296 array( '%d' ,)295 array( 'user_status' => '0' ), 296 array( 'ID' => $u ), 297 array( '%d' ), 298 array( '%d' ) 297 299 ); 298 300 clean_user_cache( $u ); … … 309 311 */ 310 312 public function test_bp_members_migrate_signups_no_activation_key_but_user_status_2() { 311 $u = self::factory()->user->create();313 $u = self::factory()->user->create(); 312 314 $u_obj = new WP_User( $u ); 313 315 … … 316 318 $wpdb->update( 317 319 $wpdb->users, 318 array( 'user_status' => '2' ,),319 array( 'ID' => $u ,),320 array( '%d' ,),321 array( '%d' ,)320 array( 'user_status' => '2' ), 321 array( 'ID' => $u ), 322 array( '%d' ), 323 array( '%d' ) 322 324 ); 323 325 clean_user_cache( $u ); … … 326 328 327 329 // Use email address as a sanity check 328 $found = BP_Signup::get();330 $found = BP_Signup::get(); 329 331 $found_email = isset( $found['signups'][0]->user_email ) ? $found['signups'][0]->user_email : ''; 330 332 $this->assertSame( $u_obj->user_email, $found_email ); … … 344 346 345 347 $time = time(); 346 $t1 = date( 'Y-m-d H:i:s', $time - 50 );347 $t2 = date( 'Y-m-d H:i:s', $time - 500 );348 $t3 = date( 'Y-m-d H:i:s', $time - 5000 );348 $t1 = date( 'Y-m-d H:i:s', $time - 50 ); 349 $t2 = date( 'Y-m-d H:i:s', $time - 500 ); 350 $t3 = date( 'Y-m-d H:i:s', $time - 5000 ); 349 351 350 352 update_user_meta( $u1, 'last_activity', $t1 ); … … 355 357 global $wpdb; 356 358 $bp = buddypress(); 357 $wpdb->query( $wpdb->prepare( 358 "INSERT INTO {$bp->members->table_name_last_activity} 359 $wpdb->query( 360 $wpdb->prepare( 361 "INSERT INTO {$bp->members->table_name_last_activity} 359 362 (`user_id`, `component`, `type`, `action`, `content`, `primary_link`, `item_id`, `date_recorded` ) VALUES 360 363 ( %d, %s, %s, %s, %s, %s, %d, %s )", 361 $u2, $bp->members->id, 'last_activity', '', '', '', 0, $t1 362 ) ); 364 $u2, 365 $bp->members->id, 366 'last_activity', 367 '', 368 '', 369 '', 370 0, 371 $t1 372 ) 373 ); 363 374 364 375 bp_last_activity_migrate(); … … 387 398 */ 388 399 public function test_bp_core_get_userid_from_nicename_failure() { 389 $this->assertSame( NULL, bp_core_get_userid_from_nicename( 'non_existent_user' ) );400 $this->assertSame( null, bp_core_get_userid_from_nicename( 'non_existent_user' ) ); 390 401 } 391 402 … … 432 443 } 433 444 434 $bp = buddypress();445 $bp = buddypress(); 435 446 $displayed_user = $bp->displayed_user; 436 447 437 $u1 = self::factory()->user->create();448 $u1 = self::factory()->user->create(); 438 449 $bp->displayed_user->id = $u1; 439 450 … … 460 471 } 461 472 462 $bp = buddypress();473 $bp = buddypress(); 463 474 $displayed_user = $bp->displayed_user; 464 475 465 $u1 = self::factory()->user->create();476 $u1 = self::factory()->user->create(); 466 477 $bp->displayed_user->id = $u1; 467 478 … … 484 495 */ 485 496 public function test_bp_core_process_spammer_status_ms_bulk_ham() { 486 if ( ! is_multisite() ) { 487 $this->markTestSkipped(); 488 } 489 490 $bp = buddypress(); 497 $this->skipWithoutMultisite(); 498 499 $bp = buddypress(); 491 500 $displayed_user = $bp->displayed_user; 492 501 493 $u1 = self::factory()->user->create();502 $u1 = self::factory()->user->create(); 494 503 $bp->displayed_user->id = $u1; 495 504 … … 520 529 add_action( 'make_spam_user', array( $this, 'notification_filter_callback' ) ); 521 530 522 $n =bp_core_process_spammer_status( $u1, 'spam' );531 bp_core_process_spammer_status( $u1, 'spam' ); 523 532 524 533 remove_action( 'make_spam_user', array( $this, 'notification_filter_callback' ) ); … … 529 538 public function test_bp_core_process_spammer_status_make_ham_user_filter() { 530 539 $u1 = self::factory()->user->create(); 531 $s = bp_core_process_spammer_status( $u1, 'spam' ); 540 541 bp_core_process_spammer_status( $u1, 'spam' ); 532 542 533 543 add_action( 'make_ham_user', array( $this, 'notification_filter_callback' ) ); 534 544 535 $h =bp_core_process_spammer_status( $u1, 'ham' );545 bp_core_process_spammer_status( $u1, 'ham' ); 536 546 537 547 remove_action( 'make_ham_user', array( $this, 'notification_filter_callback' ) ); 538 548 539 549 $this->assertSame( 'make_ham_user', $this->filter_fired ); 540 541 550 } 542 551 … … 545 554 546 555 $u1 = self::factory()->user->create(); 547 $n = bp_core_process_spammer_status( $u1, 'spam' ); 556 557 bp_core_process_spammer_status( $u1, 'spam' ); 548 558 549 559 remove_action( 'bp_make_spam_user', array( $this, 'notification_filter_callback' ) ); 550 560 551 561 $this->assertSame( 'bp_make_spam_user', $this->filter_fired ); 552 553 562 } 554 563 … … 557 566 558 567 $u1 = self::factory()->user->create(); 559 $n = bp_core_process_spammer_status( $u1, 'ham' );568 $n = bp_core_process_spammer_status( $u1, 'ham' ); 560 569 561 570 remove_action( 'bp_make_ham_user', array( $this, 'notification_filter_callback' ) ); 562 571 563 572 $this->assertSame( 'bp_make_ham_user', $this->filter_fired ); 564 565 573 } 566 574 … … 570 578 */ 571 579 public function test_bp_core_process_spammer_status_ms_should_only_spam_sites_with_one_admin() { 572 if ( ! is_multisite() ) { 573 $this->markTestSkipped(); 574 } 580 $this->skipWithoutMultisite(); 575 581 576 582 $u1 = self::factory()->user->create(); … … 663 669 global $wpdb; 664 670 665 666 $signups = array( 'no-blog' => 667 array( 'signup_id' => self::factory()->signup->create( array( 668 'user_login' => 'noblog', 669 'user_email' => 'noblog@example.com', 670 'activation_key' => 'no-blog', 671 'meta' => array( 672 'field_1' => 'Foo Bar', 673 'password' => 'foobar', 674 ), 675 ) ), 676 'password' => 'foobar', 671 $signups = array( 672 'no-blog' => 673 array( 674 'signup_id' => self::factory()->signup->create( 675 array( 676 'user_login' => 'noblog', 677 'user_email' => 'noblog@example.com', 678 'activation_key' => 'no-blog', 679 'meta' => array( 680 'field_1' => 'Foo Bar', 681 'password' => 'foobar', 682 ), 683 ) 684 ), 685 'password' => 'foobar', 677 686 ), 678 687 ); 679 688 680 689 if ( is_multisite() ) { 681 $signups['ms-blog'] = array( 'signup_id' => self::factory()->signup->create( array( 682 'user_login' => 'msblog', 683 'user_email' => 'msblog@example.com', 684 'domain' => get_current_site()->domain, 685 'path' => get_current_site()->path . 'ms-blog', 686 'title' => 'Ding Dang', 687 'activation_key' => 'ms-blog', 688 'meta' => array( 689 'field_1' => 'Ding Dang', 690 'password' => 'dingdang', 691 ), 692 ) ), 693 'password' => 'dingdang', 690 $signups['ms-blog'] = array( 691 'signup_id' => self::factory()->signup->create( 692 array( 693 'user_login' => 'msblog', 694 'user_email' => 'msblog@example.com', 695 'domain' => get_current_site()->domain, 696 'path' => get_current_site()->path . 'ms-blog', 697 'title' => 'Ding Dang', 698 'activation_key' => 'ms-blog', 699 'meta' => array( 700 'field_1' => 'Ding Dang', 701 'password' => 'dingdang', 702 ), 703 ) 704 ), 705 'password' => 'dingdang', 694 706 ); 695 707 } … … 747 759 748 760 // Create the signup. 749 self::factory()->signup->create( array( 750 'user_login' => 'test', 751 'user_email' => 'test@example.com', 752 'activation_key' => $key, 753 'meta' => array( 754 'field_1' => 'Foo Bar', 755 'password' => 'foobar', 756 ), 757 ) ); 761 self::factory()->signup->create( 762 array( 763 'user_login' => 'test', 764 'user_email' => 'test@example.com', 765 'activation_key' => $key, 766 'meta' => array( 767 'field_1' => 'Foo Bar', 768 'password' => 'foobar', 769 ), 770 ) 771 ); 758 772 759 773 // Activate user. … … 788 802 // Spam user 2. 789 803 if ( is_multisite() ) { 790 wp_update_user( array( 'ID' => $u2, 'spam' => '1' ) ); 804 wp_update_user( 805 array( 806 'ID' => $u2, 807 'spam' => '1', 808 ) 809 ); 791 810 } else { 792 811 bp_core_process_spammer_status( $u2, 'spam' ); … … 810 829 $this->assertSame( 0, bp_get_total_member_count() ); 811 830 } 831 832 /** 833 * @dataProvider provider_bp_core_validate_user_signup_errors 834 * 835 * @param string $user_name User name to validate. 836 * @param string $user_email User email to validate. 837 * @param WP_Error $expected_error Expected error message. 838 */ 839 public function test_bp_core_validate_user_signup_errors( $user_name, $user_email, $expected_error ) { 840 $this->skipWithMultisite(); 841 842 $validate = bp_core_validate_user_signup( $user_name, $user_email ); 843 844 $this->assertSame( $user_email, $validate['user_email'] ); 845 $this->assertSame( $user_name, $validate['user_name'] ); 846 $this->assertSame( $expected_error, $validate['errors']->get_error_message() ); 847 } 848 849 /** 850 * Provider for the test_bp_core_validate_user_signup() test. 851 * 852 * @return array[] 853 */ 854 public function provider_bp_core_validate_user_signup_errors() { 855 return array( 856 array( '', 'test@example.com', 'Please enter a username' ), 857 array( '@-t', 'test@example.com', 'Username must be at least 4 characters.' ), 858 array( '@-', 'test@example.com', 'Username must be at least 4 characters.' ), 859 array( '@-@-', 'test@example.com', 'Sorry, usernames must have letters too!' ), 860 array( '4343543', 'test@example.com', 'Sorry, usernames must have letters too!' ), 861 array( 'cool-test', 'example.com', 'Please check your email address.' ), 862 array( 'test&', 'test@example.com', 'Usernames can contain only letters, numbers, ., -, and @' ), 863 array( 'test_', 'test@example.com', 'Sorry, usernames may not contain the character "_"!' ), 864 array( '4te343543', 'test@example.com', '' ), 865 array( 'g4te343543', 'test@example.com', '' ), 866 ); 867 } 812 868 }
Note: See TracChangeset
for help on using the changeset viewer.