Make WordPress Core

Changeset 1070 in tests


Ignore:
Timestamp:
10/03/2012 12:21:47 PM (14 years ago)
Author:
ryan
Message:

Post meta key AND query tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/post/query.php

    r1069 r1070  
    4848        $post_ids = wp_list_pluck( $posts, 'ID' );
    4949        $this->assertEquals( array( $post_id, $post_id2, $post_id3, $post_id4 ), $post_ids );
     50    }
     51
     52    function test_meta_key_and_query() {
     53        $post_id = $this->factory->post->create();
     54        add_post_meta( $post_id, 'foo', rand_str() );
     55        add_post_meta( $post_id, 'foo', rand_str() );
     56        $post_id2 = $this->factory->post->create();
     57        add_post_meta( $post_id2, 'bar', 'val2' );
     58        add_post_meta( $post_id2, 'foo', rand_str() );
     59        $post_id3 = $this->factory->post->create();
     60        add_post_meta( $post_id3, 'baz', rand_str() );
     61        $post_id4 = $this->factory->post->create();
     62        add_post_meta( $post_id4, 'froo', rand_str() );
     63        $post_id5 = $this->factory->post->create();
     64        add_post_meta( $post_id5, 'tango', 'val2' );
     65        $post_id6 = $this->factory->post->create();
     66        add_post_meta( $post_id6, 'bar', 'val1' );
     67        add_post_meta( $post_id6, 'foo', rand_str() );
     68        $post_id7 = $this->factory->post->create();
     69        add_post_meta( $post_id7, 'foo', rand_str() );
     70        add_post_meta( $post_id7, 'froo', rand_str() );
     71        add_post_meta( $post_id7, 'baz', rand_str() );
     72        add_post_meta( $post_id7, 'bar', 'val2' );
     73
     74        $query = new WP_Query( array(
     75            'meta_query' => array(
     76                    array(
     77                            'key' => 'foo'
     78                    ),
     79                    array(
     80                            'key' => 'bar',
     81                            'value' => 'val2'
     82                    ),
     83                    array(
     84                            'key' => 'baz'
     85                    ),
     86                    array(
     87                            'key' => 'froo'
     88                    ),
     89                    'relation' => 'AND',
     90            ),
     91        ) );
     92
     93        $posts = $query->get_posts();
     94        $this->assertEquals( 1, count( $posts ) );
     95
     96        $post_ids = wp_list_pluck( $posts, 'ID' );
     97        $this->assertEquals( array( $post_id7 ), $post_ids );
     98
     99        $query = new WP_Query( array(
     100            'meta_query' => array(
     101                    array(
     102                            'key' => 'foo'
     103                    ),
     104                    array(
     105                            'key' => 'bar',
     106                    ),
     107                    'relation' => 'AND',
     108            ),
     109        ) );
     110
     111        $posts = $query->get_posts();
     112        $this->assertEquals( 3, count( $posts ) );
     113
     114        $post_ids = wp_list_pluck( $posts, 'ID' );
     115        $this->assertEquals( array( $post_id2, $post_id6, $post_id7 ), $post_ids );
    50116    }
    51117
Note: See TracChangeset for help on using the changeset viewer.