WordPress.org

Make WordPress Core

Ticket #29031: 29031.test.patch

File 29031.test.patch, 2.3 KB (added by boonebgorges, 6 years ago)
  • tests/phpunit/tests/post/query.php

    diff --git tests/phpunit/tests/post/query.php tests/phpunit/tests/post/query.php
    index 0539edc..8437841 100644
    class Tests_Post_Query extends WP_UnitTestCase { 
    14771477        }
    14781478
    14791479        /**
     1480         * @ticket 29031
     1481         * @group taxonomy
     1482         */
     1483        public function test_tax_query_field_id_terms_order() {
     1484                register_taxonomy( 'movie_genre', 'post' );
     1485                register_taxonomy( 'actors', 'post' );
     1486                $posts = $this->factory->post->create_many( 4 );
     1487
     1488                $mg_term = $this->factory->term->create( array(
     1489                        'taxonomy' => 'movie_genre',
     1490                        'slug' => 'action',
     1491                ) );
     1492
     1493                $a_term_1 = $this->factory->term->create( array(
     1494                        'taxonomy' => 'actors',
     1495                ) );
     1496
     1497                $a_term_2 = $this->factory->term->create( array(
     1498                        'taxonomy' => 'actors',
     1499                ) );
     1500
     1501                // a_term_1 does not have any posts.
     1502                wp_set_object_terms( $posts[0], $mg_term, 'movie_genre' );
     1503                wp_set_object_terms( $posts[0], $a_term_2, 'actors' );
     1504
     1505                wp_set_object_terms( $posts[1], $mg_term, 'movie_genre' );
     1506                wp_set_object_terms( $posts[2], $a_term_2, 'actors' );
     1507
     1508                $query = new WP_Query( array(
     1509                        'fields' => 'ids',
     1510                        'update_post_term_cache' => false,
     1511                        'update_post_meta_cache' => false,
     1512                        'relation' => 'AND',
     1513                        'tax_query' => array(
     1514                                array(
     1515                                        'taxonomy' => 'movie_genre',
     1516                                        'field' => 'slug',
     1517                                        'terms' => array( 'action' ),
     1518                                ),
     1519                                array(
     1520                                        'taxonomy' => 'actors',
     1521                                        'field' => 'id',
     1522                                        'terms' => array( $a_term_1, $a_term_2 ),
     1523                                        'operator' => 'IN',
     1524                                )
     1525                        ),
     1526                ) );
     1527
     1528                $found = $query->get_posts();
     1529                $this->assertEqualSets( array( $posts[0] ), $found );
     1530
     1531                // Try again, with the 'actors' terms reversed in order.
     1532                $query = new WP_Query( array(
     1533                        'fields' => 'ids',
     1534                        'update_post_term_cache' => false,
     1535                        'update_post_meta_cache' => false,
     1536                        'relation' => 'AND',
     1537                        'tax_query' => array(
     1538                                array(
     1539                                        'taxonomy' => 'movie_genre',
     1540                                        'field' => 'slug',
     1541                                        'terms' => array( 'action' ),
     1542                                ),
     1543                                array(
     1544                                        'taxonomy' => 'actors',
     1545                                        'field' => 'id',
     1546                                        'terms' => array( $a_term_2, $a_term_1 ),
     1547                                        'operator' => 'IN',
     1548                                )
     1549                        ),
     1550                ) );
     1551
     1552                $found = $query->get_posts();
     1553                $this->assertEqualSets( array( $posts[0] ), $found );
     1554        }
     1555
     1556        /**
    14801557         * @group taxonomy
    14811558         */
    14821559        public function test_tax_query_include_children() {