WordPress.org

Make WordPress Core

Ticket #11056: 11056.tests.diff

File 11056.tests.diff, 3.2 KB (added by kovshenin, 2 years ago)
  • tests/query/results.php

     
    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' ) ); 
    4545 
     46                $this->parent_one = $this->factory->post->create( array( 'post_title' => 'parent-one', 'post_date' => '2007-01-01 00:00:00' ) ); 
     47                $this->parent_two = $this->factory->post->create( array( 'post_title' => 'parent-two', 'post_date' => '2007-01-01 00:00:00' ) ); 
     48                $this->parent_three = $this->factory->post->create( array( 'post_title' => 'parent-three', 'post_date' => '2007-01-01 00:00:00' ) ); 
     49                $this->factory->post->create( array( 'post_title' => 'child-one', 'post_parent' => $this->parent_one, 'post_date' => '2007-01-01 00:00:01' ) ); 
     50                $this->factory->post->create( array( 'post_title' => 'child-two', 'post_parent' => $this->parent_one, 'post_date' => '2007-01-01 00:00:02' ) ); 
     51                $this->factory->post->create( array( 'post_title' => 'child-three', 'post_parent' => $this->parent_two, 'post_date' => '2007-01-01 00:00:03' ) ); 
     52                $this->factory->post->create( array( 'post_title' => 'child-four', 'post_parent' => $this->parent_two, 'post_date' => '2007-01-01 00:00:04' ) ); 
     53 
    4654                unset( $this->q ); 
    4755                $this->q = new WP_Query(); 
    4856        } 
     
    294302                $this->assertEquals( $expected, wp_list_pluck( $posts, 'post_name' ) ); 
    295303        } 
    296304 
     305        /** 
     306         * @ticket 11056 
     307         */ 
     308        function test_query_post_parent__in() { 
     309                // Query for first parent's children 
     310                $posts = $this->q->query( array( 
     311                        'post_parent__in' => array( $this->parent_one ), 
     312                        'orderby' => 'date', 
     313                        'order' => 'asc', 
     314                ) ); 
     315 
     316                $this->assertEquals( array( 
     317                        'child-one', 
     318                        'child-two', 
     319                ), wp_list_pluck( $posts, 'post_title' ) ); 
     320 
     321                // Second parent's children 
     322                $posts = $this->q->query( array( 
     323                        'post_parent__in' => array( $this->parent_two ), 
     324                        'orderby' => 'date', 
     325                        'order' => 'asc', 
     326                ) ); 
     327 
     328                $this->assertEquals( array( 
     329                        'child-three', 
     330                        'child-four', 
     331                ), wp_list_pluck( $posts, 'post_title' ) ); 
     332 
     333                // Both first and second parent's children 
     334                $posts = $this->q->query( array( 
     335                        'post_parent__in' => array( $this->parent_one, $this->parent_two ), 
     336                        'orderby' => 'date', 
     337                        'order' => 'asc', 
     338                ) ); 
     339 
     340                $this->assertEquals( array( 
     341                        'child-one', 
     342                        'child-two', 
     343                        'child-three', 
     344                        'child-four', 
     345                ), wp_list_pluck( $posts, 'post_title' ) ); 
     346 
     347                // Third parent's children 
     348                $posts = $this->q->query( array( 
     349                        'post_parent__in' => array( $this->parent_three ), 
     350                ) ); 
     351 
     352                $this->assertEquals( array(), wp_list_pluck( $posts, 'post_title' ) ); 
     353        } 
     354 
     355        /** 
     356         * @ticket 11056 
     357         */ 
     358        function test_query_orderby_post_parent__in() { 
     359                $posts = $this->q->query( array( 
     360                        'post_parent__in' => array( $this->parent_two, $this->parent_one ), 
     361                        'orderby' => 'post_parent__in', 
     362                        'order' => 'asc', 
     363                ) ); 
     364 
     365                $this->assertEquals( array( 
     366                        'child-three', 
     367                        'child-four', 
     368                        'child-one', 
     369                        'child-two', 
     370                ), wp_list_pluck( $posts, 'post_title' ) ); 
     371        } 
    297372}