updateUserCaches.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * @group user
  4. */
  5. class Tests_User_UpdateUserCaches extends WP_UnitTestCase {
  6. public function test_should_store_entire_database_row_in_users_bucket() {
  7. global $wpdb;
  8. $u = self::factory()->user->create();
  9. $raw_userdata = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $u ) );
  10. update_user_caches( $raw_userdata );
  11. $this->assertEquals( $raw_userdata, wp_cache_get( $u, 'users' ) );
  12. }
  13. public function test_should_store_user_id_in_userlogins_bucket() {
  14. $data = new stdClass();
  15. $data->ID = 12345;
  16. $data->user_login = 'foo';
  17. $data->user_email = 'foo@example.com';
  18. $data->user_nicename = 'bar';
  19. update_user_caches( $data );
  20. $this->assertSame( 12345, wp_cache_get( 'foo', 'userlogins' ) );
  21. }
  22. public function test_should_store_user_id_in_useremail_bucket() {
  23. $data = new stdClass();
  24. $data->ID = 12345;
  25. $data->user_login = 'foo';
  26. $data->user_email = 'foo@example.com';
  27. $data->user_nicename = 'bar';
  28. update_user_caches( $data );
  29. $this->assertSame( 12345, wp_cache_get( 'foo@example.com', 'useremail' ) );
  30. }
  31. public function test_should_store_user_id_in_userslugs_bucket() {
  32. $data = new stdClass();
  33. $data->ID = 12345;
  34. $data->user_login = 'foo';
  35. $data->user_email = 'foo@example.com';
  36. $data->user_nicename = 'bar';
  37. update_user_caches( $data );
  38. $this->assertSame( 12345, wp_cache_get( 'bar', 'userslugs' ) );
  39. }
  40. /**
  41. * @ticket 24635
  42. */
  43. public function test_should_store_raw_data_in_users_bucket_when_passed_a_wp_user_object() {
  44. global $wpdb;
  45. $u = self::factory()->user->create();
  46. $raw_userdata = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $u ) );
  47. $user_object = new WP_User( $u );
  48. update_user_caches( $user_object );
  49. $cached = wp_cache_get( $u, 'users' );
  50. $this->assertFalse( $cached instanceof WP_User );
  51. $this->assertEquals( $raw_userdata, $cached );
  52. }
  53. }