WordPress.org

Make WordPress Core

Ticket #20493: 20493-ut.diff

File 20493-ut.diff, 2.7 KB (added by ryan, 21 months ago)
  • tests/post/query.php

     
    409409        $posts = wp_list_pluck( $posts, 'ID' ); 
    410410        $this->assertEquals( array(), array_diff( array( $post_id, $post_id3, $post_id4, $post_id5, $post_id6 ), $posts ) ); 
    411411    } 
     412 
     413        function test_taxonomy_include_children() { 
     414                $cat_a = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'Australia' ) ); 
     415                $cat_b = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'Sydney', 'parent' => $cat_a ) ); 
     416                $cat_c = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'East Syndney', 'parent' => $cat_b ) ); 
     417                $cat_d = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'West Syndney', 'parent' => $cat_b ) ); 
     418 
     419                $post_a = $this->factory->post->create( array( 'post_category' => array( $cat_a ) ) ); 
     420                $post_b = $this->factory->post->create( array( 'post_category' => array( $cat_b ) ) ); 
     421                $post_c = $this->factory->post->create( array( 'post_category' => array( $cat_c ) ) ); 
     422                $post_d = $this->factory->post->create( array( 'post_category' => array( $cat_d ) ) ); 
     423 
     424                $posts = get_posts( array( 
     425                    'tax_query' => array( 
     426                                array( 
     427                                        'taxonomy' => 'category', 
     428                                        'field' => 'id', 
     429                                        'terms' => array( $cat_a ), 
     430                                ) 
     431                    )    
     432                ) ); 
     433 
     434                $this->assertEquals( 4 , count( $posts ) ); 
     435 
     436                $posts = get_posts( array( 
     437                    'tax_query' => array( 
     438                                array( 
     439                                        'taxonomy' => 'category', 
     440                                        'field' => 'id', 
     441                                        'terms' => array( $cat_a ), 
     442                                        'include_children' => false 
     443                                ) 
     444                    )    
     445                ) ); 
     446 
     447                $this->assertEquals( 1 , count( $posts ) ); 
     448 
     449                $posts = get_posts( array( 
     450                    'tax_query' => array( 
     451                                array( 
     452                                        'taxonomy' => 'category', 
     453                                        'field' => 'id', 
     454                                        'terms' => array( $cat_b ), 
     455                                ) 
     456                    )    
     457                ) ); 
     458 
     459                $this->assertEquals( 3 , count( $posts ) ); 
     460 
     461                $posts = get_posts( array( 
     462                    'tax_query' => array( 
     463                                array( 
     464                                        'taxonomy' => 'category', 
     465                                        'field' => 'id', 
     466                                        'terms' => array( $cat_b ), 
     467                                        'include_children' => false 
     468                                ) 
     469                    )    
     470                ) ); 
     471 
     472                $this->assertEquals( 1 , count( $posts ) ); 
     473 
     474                $posts = get_posts( array( 
     475                    'tax_query' => array( 
     476                                array( 
     477                                        'taxonomy' => 'category', 
     478                                        'field' => 'id', 
     479                                        'terms' => array( $cat_c ), 
     480                                ) 
     481                    )    
     482                ) ); 
     483 
     484                $this->assertEquals( 1 , count( $posts ) ); 
     485 
     486                $posts = get_posts( array( 
     487                    'tax_query' => array( 
     488                                array( 
     489                                        'taxonomy' => 'category', 
     490                                        'field' => 'id', 
     491                                        'terms' => array( $cat_c ), 
     492                                        'include_children' => false 
     493                                ) 
     494                    )    
     495                ) ); 
     496 
     497                $this->assertEquals( 1 , count( $posts ) ); 
     498        } 
    412499}