Changeset 39454 for branches/4.7/tests/phpunit/tests/term/cache.php
- Timestamp:
- 12/03/2016 04:04:05 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/4.7/tests/phpunit/tests/term/cache.php
r38776 r39454 222 222 223 223 /** 224 * @ticket 21760225 */226 function test_get_term_by_slug_cache() {227 global $wpdb;228 229 $term_id = $this->factory->term->create( array( 'slug' => 'burrito', 'name' => 'Taco', 'taxonomy' => 'post_tag' ) );230 231 clean_term_cache( $term_id, 'post_tag' );232 $num_queries = $wpdb->num_queries;233 234 $term = get_term_by( 'slug', 'burrito', 'post_tag' );235 $num_queries++;236 $this->assertEquals( 'Taco', $term->name );237 $this->assertEquals( $num_queries, $wpdb->num_queries );238 239 // This should now hit cache.240 $term = get_term_by( 'slug', 'burrito', 'post_tag' );241 $this->assertEquals( 'Taco', $term->name );242 $this->assertEquals( $num_queries, $wpdb->num_queries );243 244 $this->assertEquals( get_term( $term_id, 'post_tag' ), $term );245 $this->assertEquals( $num_queries, $wpdb->num_queries );246 }247 248 /**249 * @ticket 21760250 */251 function test_get_term_by_slug_cache_update() {252 global $wpdb;253 254 $term_id = $this->factory->term->create( array( 'slug' => 'burrito', 'name' => 'Taco', 'taxonomy' => 'post_tag' ) );255 256 clean_term_cache( $term_id, 'post_tag' );257 $num_queries = $wpdb->num_queries;258 259 $term = get_term_by( 'slug', 'burrito', 'post_tag' );260 $num_queries++;261 $this->assertEquals( 'Taco', $term->name );262 $this->assertEquals( $num_queries, $wpdb->num_queries );263 264 // This should now hit cache.265 $term = get_term_by( 'slug', 'burrito', 'post_tag' );266 $this->assertEquals( 'Taco', $term->name );267 $this->assertEquals( $num_queries, $wpdb->num_queries );268 269 // Update the tag which invalidates the cache.270 wp_update_term( $term_id, 'post_tag', array( 'name' => 'No Taco' ) );271 $num_queries = $wpdb->num_queries;272 273 // This should not hit cache.274 $term = get_term_by( 'slug', 'burrito', 'post_tag' );275 $num_queries++;276 $this->assertEquals( 'No Taco', $term->name );277 $this->assertEquals( $num_queries, $wpdb->num_queries );278 }279 280 /**281 * @ticket 21760282 */283 function test_get_term_by_name_cache() {284 global $wpdb;285 286 $term_id = $this->factory->term->create( array( 'name' => 'Burrito', 'slug' => 'noburrito', 'taxonomy' => 'post_tag' ) );287 288 clean_term_cache( $term_id, 'post_tag' );289 $num_queries = $wpdb->num_queries;290 291 get_term_by( 'name', 'Burrito', 'post_tag' );292 $num_queries++;293 $this->assertEquals( $num_queries, $wpdb->num_queries );294 295 // This should now hit cache.296 $term = get_term_by( 'name', 'Burrito', 'post_tag' );297 $this->assertEquals( $num_queries, $wpdb->num_queries );298 299 $this->assertEquals( get_term( $term_id, 'post_tag' ), $term );300 $this->assertEquals( $num_queries, $wpdb->num_queries );301 }302 303 /**304 * @ticket 21760305 */306 function test_get_term_by_name_cache_update() {307 global $wpdb;308 309 $term_id = $this->factory->term->create( array( 'name' => 'Burrito', 'slug' => 'noburrito', 'taxonomy' => 'post_tag' ) );310 311 clean_term_cache( $term_id, 'post_tag' );312 $num_queries = $wpdb->num_queries;313 314 get_term_by( 'name', 'Burrito', 'post_tag' );315 $num_queries++;316 $this->assertEquals( $num_queries, $wpdb->num_queries );317 318 // This should now hit cache.319 get_term_by( 'name', 'Burrito', 'post_tag' );320 $this->assertEquals( $num_queries, $wpdb->num_queries );321 322 // Update the tag which invalidates the cache.323 wp_update_term( $term_id, 'post_tag', array( 'slug' => 'taco' ) );324 $num_queries = $wpdb->num_queries;325 326 // This should not hit cache.327 get_term_by( 'name', 'burrito', 'post_tag' );328 $num_queries++;329 $this->assertEquals( $num_queries, $wpdb->num_queries );330 }331 332 /**333 * @ticket 21760334 */335 function test_invalidating_term_caches_should_fail_when_invalidation_is_suspended() {336 global $wpdb;337 338 $term_id = $this->factory->term->create( array( 'name' => 'Burrito', 'taxonomy' => 'post_tag' ) );339 340 clean_term_cache( $term_id, 'post_tag' );341 $num_queries = $wpdb->num_queries;342 $last_changed = wp_cache_get( 'last_changed', 'terms' );343 344 $term1 = get_term_by( 'name', 'Burrito', 'post_tag' );345 $num_queries++;346 347 // Verify the term is cached.348 $term2 = get_term_by( 'name', 'Burrito', 'post_tag' );349 $this->assertEquals( $num_queries, $wpdb->num_queries );350 $this->assertEquals( $term1, $term2 );351 352 $suspend = wp_suspend_cache_invalidation();353 354 // Update the tag.355 wp_update_term( $term_id, 'post_tag', array( 'name' => 'Taco' ) );356 $num_queries = $wpdb->num_queries;357 358 // Verify that the cached term still matches the initial cached term.359 $term3 = get_term_by( 'name', 'Burrito', 'post_tag' );360 $this->assertEquals( $num_queries, $wpdb->num_queries );361 $this->assertEquals( $term1, $term3 );362 363 // Verify that last changed has not been updated as part of an invalidation routine.364 $this->assertSame( $last_changed, wp_cache_get( 'last_changed', 'terms' ) );365 366 // Clean up.367 wp_suspend_cache_invalidation( $suspend );368 }369 370 /**371 * @ticket 21760372 */373 public function test_get_term_by_does_not_prime_term_meta_cache() {374 global $wpdb;375 376 $term_id = $this->factory->term->create( array( 'name' => 'Burrito', 'taxonomy' => 'post_tag' ) );377 add_term_meta( $term_id, 'foo', 'bar' );378 379 clean_term_cache( $term_id, 'post_tag' );380 $num_queries = $wpdb->num_queries;381 382 $term = get_term_by( 'name', 'Burrito', 'post_tag' );383 $num_queries++;384 $this->assertTrue( $term instanceof WP_Term );385 $this->assertSame( $term_id, $term->term_id );386 $this->assertEquals( $num_queries, $wpdb->num_queries );387 388 $term_meta = get_term_meta( $term_id, 'foo', true );389 $num_queries++;390 $this->assertSame( $term_meta, 'bar' );391 $this->assertEquals( $num_queries, $wpdb->num_queries );392 }393 394 /**395 224 * @ticket 37291 396 225 */
Note: See TracChangeset
for help on using the changeset viewer.