Changeset 7805
- Timestamp:
- 02/05/2014 10:53:30 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-xprofile/bp-xprofile-classes.php
r7792 r7805 1309 1309 1310 1310 /** 1311 * Get the user's field data id by the id of the xprofile field 1311 * Get the user's field data id by the id of the xprofile field. 1312 1312 * 1313 1313 * @param int $field_id … … 1321 1321 $fielddata_id = 0; 1322 1322 } else { 1323 $fielddata_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_data} WHERE field_id = %d AND user_id = %d", $field_id, $user_id ) ); 1323 1324 // Check cache first 1325 $fielddata = wp_cache_get( $field_id, 'bp_xprofile_data_' . $user_id ); 1326 if ( false === $fielddata || empty( $fielddata->id ) ) { 1327 $fielddata_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_data} WHERE field_id = %d AND user_id = %d", $field_id, $user_id ) ); 1328 } else { 1329 $fielddata_id = $fielddata->id; 1330 } 1324 1331 } 1325 1332 -
trunk/tests/testcases/xprofile/class-bp-xprofile-profiledata.php
r7792 r7805 59 59 $this->assertTrue( $d->exists() ); 60 60 } 61 62 /** 63 * @group get_fielddataid_byid 64 */ 65 public function test_get_fielddataid_byid_when_doesnt_exist() { 66 $u = $this->create_user(); 67 $g = $this->factory->xprofile_group->create(); 68 $f = $this->factory->xprofile_field->create( array( 69 'type' => 'textbox', 70 'field_group_id' => $g->id, 71 ) ); 72 73 // Just to be sure 74 wp_cache_delete( $f->id, 'bp_xprofile_data_' . $u ); 75 76 $this->assertEquals( 0, BP_XProfile_ProfileData::get_fielddataid_byid( $f->id, $u ) ); 77 } 78 79 /** 80 * @group get_fielddataid_byid 81 */ 82 public function test_get_fielddataid_byid_when_exists_uncached() { 83 $u = $this->create_user(); 84 $g = $this->factory->xprofile_group->create(); 85 $f = $this->factory->xprofile_field->create( array( 86 'type' => 'textbox', 87 'field_group_id' => $g->id, 88 ) ); 89 90 $d = new BP_XProfile_ProfileData(); 91 $d->user_id = $u; 92 $d->field_id = $f->id; 93 $d->value = 'foo'; 94 $d->save(); 95 96 // Ensure it's deleted from cache 97 wp_cache_delete( $f->id, 'bp_xprofile_data_' . $u ); 98 99 $this->assertEquals( $d->id, BP_XProfile_ProfileData::get_fielddataid_byid( $f->id, $u ) ); 100 } 101 102 /** 103 * @group get_fielddataid_byid 104 */ 105 public function test_get_fielddataid_byid_when_exists_in_cache() { 106 $u = $this->create_user(); 107 $g = $this->factory->xprofile_group->create(); 108 $f = $this->factory->xprofile_field->create( array( 109 'type' => 'textbox', 110 'field_group_id' => $g->id, 111 ) ); 112 113 // Fake the cache 114 $d = new stdClass; 115 $d->id = 5; 116 wp_cache_set( $f->id, $d, 'bp_xprofile_data_' . $u ); 117 118 $this->assertSame( 5, BP_XProfile_ProfileData::get_fielddataid_byid( $f->id, $u ) ); 119 } 61 120 }
Note: See TracChangeset
for help on using the changeset viewer.