WordPress.org

Make WordPress Core

Ticket #11056: post-parent-in-tests.diff

File post-parent-in-tests.diff, 2.2 KB (added by wonderboymusic, 6 years ago)
  • tests/query/results.php

     
    4242                $this->factory->post->create( array( 'post_title' => 'tags-a-and-b', 'tags_input' => array( 'tag-a', 'tag-b' ), 'post_date' => '2010-08-01 00:00:00' ) );
    4343                $this->factory->post->create( array( 'post_title' => 'tags-b-and-c', 'tags_input' => array( 'tag-b', 'tag-c' ), 'post_date' => '2010-09-01 00:00:00' ) );
    4444                $this->factory->post->create( array( 'post_title' => 'tags-a-and-c', 'tags_input' => array( 'tag-a', 'tag-c' ), 'post_date' => '2010-10-01 00:00:00' ) );
    45 
     45               
    4646                unset( $this->q );
    4747                $this->q = new WP_Query();
    4848        }
     
    294294                $this->assertEquals( $expected, wp_list_pluck( $posts, 'post_name' ) );
    295295        }
    296296
     297        function test_query_post_parent__in() {
     298                $parent_id = $this->factory->post->create( array( 'post_title' => 'parent-post' ) );
     299                $child_id = $this->factory->post->create( array( 'post_title' => 'child-post', 'post_parent' => $parent_id ) );
     300               
     301                $posts = $this->q->query( array( 
     302                        'fields'          => 'ids',
     303                        'post_parent__in' => array( $parent_id )
     304                ) );
     305               
     306                $this->assertEquals( reset( $posts ), $child_id );
     307        }
     308
     309        function test_order_post_parent__in() {
     310                $parent_id1 = $this->factory->post->create( array( 'post_title' => rand_str() ) );
     311                $parent_id2 = $this->factory->post->create( array( 'post_title' => rand_str() ) );
     312                $this->factory->post->create( array( 'post_title' => rand_str(), 'post_parent' => $parent_id2 ) );
     313                $this->factory->post->create( array( 'post_title' => rand_str(), 'post_parent' => $parent_id1 ) );
     314                $this->factory->post->create( array( 'post_title' => rand_str(), 'post_parent' => $parent_id2 ) );
     315                $this->factory->post->create( array( 'post_title' => rand_str(), 'post_parent' => $parent_id1 ) );
     316               
     317                $posts = $this->q->query( array( 
     318                        'fields'          => 'id=>parent',
     319                        'post_parent__in' => array( $parent_id1, $parent_id2 ),
     320                        'orderby'         => 'post_parent__in',
     321                        'order'           => 'ASC'
     322                ) );
     323               
     324                $values = array_map( 'absint', array_values( $posts ) );
     325                $parents = $values;
     326                sort( $parents );
     327                $this->assertEquals( $parents, $values );
     328        }       
    297329}