WordPress.org

Make WordPress Core

Changeset 37608


Ignore:
Timestamp:
06/01/2016 04:59:16 PM (3 years ago)
Author:
boonebgorges
Message:

Add tests demonstrating query cache invalidation on comment CRUD actions.

See #36909.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/comment/query.php

    r36486 r37608  
    25122512        $this->assertEqualSets( array( $c ), $found );
    25132513    }
     2514
     2515    public function test_comment_query_should_be_cached() {
     2516        global $wpdb;
     2517
     2518        $q = new WP_Comment_Query( array(
     2519            'post_id' => self::$post_id,
     2520            'fields' => 'ids',
     2521        ) );
     2522
     2523        $c = wp_insert_comment( array(
     2524            'comment_author' => 'Foo',
     2525            'comment_author_email' => 'foo@example.com',
     2526            'comment_post_ID' => self::$post_id,
     2527        ) );
     2528
     2529        $num_queries = $wpdb->num_queries;
     2530    }
     2531
     2532    public function test_created_comment_should_invalidate_query_cache() {
     2533        global $wpdb;
     2534
     2535        $c = self::factory()->comment->create( array(
     2536            'comment_post_ID' => self::$post_id,
     2537            'comment_approved' => '1',
     2538        ) );
     2539
     2540        $q = new WP_Comment_Query( array(
     2541            'post_id' => self::$post_id,
     2542            'fields' => 'ids',
     2543        ) );
     2544
     2545        $num_queries = $wpdb->num_queries;
     2546
     2547        $q = new WP_Comment_Query( array(
     2548            'post_id' => self::$post_id,
     2549            'fields' => 'ids',
     2550        ) );
     2551
     2552        $this->assertSame( $num_queries, $wpdb->num_queries );
     2553        $this->assertEqualSets( array( $c ), $q->comments );
     2554    }
     2555
     2556    public function test_updated_comment_should_invalidate_query_cache() {
     2557        global $wpdb;
     2558
     2559        $c = self::factory()->comment->create( array(
     2560            'comment_post_ID' => self::$post_id,
     2561            'comment_approved' => '1',
     2562        ) );
     2563
     2564        $q = new WP_Comment_Query( array(
     2565            'post_id' => self::$post_id,
     2566            'fields' => 'ids',
     2567        ) );
     2568
     2569        wp_update_comment( array(
     2570            'comment_ID' => $c,
     2571            'comment_author' => 'Foo',
     2572            'comment_author_email' => 'foo@example.com',
     2573            'comment_post_ID' => self::$post_id,
     2574        ) );
     2575
     2576        $num_queries = $wpdb->num_queries;
     2577
     2578        $q = new WP_Comment_Query( array(
     2579            'post_id' => self::$post_id,
     2580            'fields' => 'ids',
     2581        ) );
     2582
     2583        $num_queries++;
     2584        $this->assertSame( $num_queries, $wpdb->num_queries );
     2585        $this->assertEqualSets( array( $c ), $q->comments );
     2586    }
     2587
     2588    public function test_deleted_comment_should_invalidate_query_cache() {
     2589        global $wpdb;
     2590
     2591        $c = self::factory()->comment->create( array(
     2592            'comment_post_ID' => self::$post_id,
     2593            'comment_approved' => '1',
     2594        ) );
     2595
     2596        $q = new WP_Comment_Query( array(
     2597            'post_id' => self::$post_id,
     2598            'fields' => 'ids',
     2599        ) );
     2600
     2601        wp_delete_comment( $c );
     2602
     2603        $num_queries = $wpdb->num_queries;
     2604
     2605        $q = new WP_Comment_Query( array(
     2606            'post_id' => self::$post_id,
     2607            'fields' => 'ids',
     2608        ) );
     2609
     2610        $num_queries++;
     2611        $this->assertSame( $num_queries, $wpdb->num_queries );
     2612        $this->assertEqualSets( array(), $q->comments );
     2613    }
     2614
     2615    public function test_trashed_comment_should_invalidate_query_cache() {
     2616        global $wpdb;
     2617
     2618        $c = self::factory()->comment->create( array(
     2619            'comment_post_ID' => self::$post_id,
     2620            'comment_approved' => '1',
     2621        ) );
     2622
     2623        $q = new WP_Comment_Query( array(
     2624            'post_id' => self::$post_id,
     2625            'fields' => 'ids',
     2626        ) );
     2627
     2628        wp_trash_comment( $c );
     2629
     2630        $num_queries = $wpdb->num_queries;
     2631
     2632        $q = new WP_Comment_Query( array(
     2633            'post_id' => self::$post_id,
     2634            'fields' => 'ids',
     2635        ) );
     2636
     2637        $num_queries++;
     2638        $this->assertSame( $num_queries, $wpdb->num_queries );
     2639        $this->assertEqualSets( array(), $q->comments );
     2640    }
     2641
     2642    public function test_untrashed_comment_should_invalidate_query_cache() {
     2643        global $wpdb;
     2644
     2645        $c = self::factory()->comment->create( array(
     2646            'comment_post_ID' => self::$post_id,
     2647            'comment_approved' => '1',
     2648        ) );
     2649
     2650        wp_trash_comment( $c );
     2651
     2652        $q = new WP_Comment_Query( array(
     2653            'post_id' => self::$post_id,
     2654            'fields' => 'ids',
     2655        ) );
     2656
     2657        wp_untrash_comment( $c );
     2658
     2659        $num_queries = $wpdb->num_queries;
     2660
     2661        $q = new WP_Comment_Query( array(
     2662            'post_id' => self::$post_id,
     2663            'fields' => 'ids',
     2664        ) );
     2665
     2666        $num_queries++;
     2667        $this->assertSame( $num_queries, $wpdb->num_queries );
     2668        $this->assertEqualSets( array( $c ), $q->comments );
     2669    }
     2670
     2671    public function test_spammed_comment_should_invalidate_query_cache() {
     2672        global $wpdb;
     2673
     2674        $c = self::factory()->comment->create( array(
     2675            'comment_post_ID' => self::$post_id,
     2676            'comment_approved' => '1',
     2677        ) );
     2678
     2679        $q = new WP_Comment_Query( array(
     2680            'post_id' => self::$post_id,
     2681            'fields' => 'ids',
     2682        ) );
     2683
     2684        wp_spam_comment( $c );
     2685
     2686        $num_queries = $wpdb->num_queries;
     2687
     2688        $q = new WP_Comment_Query( array(
     2689            'post_id' => self::$post_id,
     2690            'fields' => 'ids',
     2691        ) );
     2692
     2693        $num_queries++;
     2694        $this->assertSame( $num_queries, $wpdb->num_queries );
     2695        $this->assertEqualSets( array(), $q->comments );
     2696    }
     2697
     2698    public function test_unspammed_comment_should_invalidate_query_cache() {
     2699        global $wpdb;
     2700
     2701        $c = self::factory()->comment->create( array(
     2702            'comment_post_ID' => self::$post_id,
     2703            'comment_approved' => '1',
     2704        ) );
     2705
     2706        wp_spam_comment( $c );
     2707
     2708        $q = new WP_Comment_Query( array(
     2709            'post_id' => self::$post_id,
     2710            'fields' => 'ids',
     2711        ) );
     2712
     2713        wp_unspam_comment( $c );
     2714
     2715        $num_queries = $wpdb->num_queries;
     2716
     2717        $q = new WP_Comment_Query( array(
     2718            'post_id' => self::$post_id,
     2719            'fields' => 'ids',
     2720        ) );
     2721
     2722        $num_queries++;
     2723        $this->assertSame( $num_queries, $wpdb->num_queries );
     2724        $this->assertEqualSets( array( $c ), $q->comments );
     2725    }
    25142726}
Note: See TracChangeset for help on using the changeset viewer.