Make WordPress Core

Ticket #20493: 20493-ut.diff

File 20493-ut.diff, 2.7 KB (added by ryan, 13 years 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}