WordPress.org

Make WordPress Core

Ticket #27282: 27282-tests-1.diff

File 27282-tests-1.diff, 2.3 KB (added by bendoh, 5 years ago)

Updated tests, including test_stickies_more_than_posts_per_page_second_page

  • tests/phpunit/tests/query/stickies.php

     
    2020                        ) );
    2121                }
    2222
    23                 stick_post( self::$posts[2] );
    24                 stick_post( self::$posts[14] );
    25                 stick_post( self::$posts[8] );
     23                stick_post( self::$posts[2] ); // ID 5
     24                stick_post( self::$posts[14] ); // ID 17
     25                stick_post( self::$posts[8] ); // ID 11
    2626
    2727                self::commit_transaction();
    2828        }
     
    9393                $this->assertEquals( $expected, wp_list_pluck( $q->posts, 'ID' ) );
    9494        }
    9595
     96        /**
     97         * @group 27282
     98         */
    9699        public function test_stickies_should_obey_post__not_in() {
    97100                add_action( 'parse_query', array( $this, 'set_post__not_in' ) );
    98101                $this->go_to( '/' );
     
    105108                $this->assertNotContains( self::$posts[8], wp_list_pluck( $q->posts, 'ID' ) );
    106109        }
    107110
     111        /**
     112         * @group 27282
     113         */
     114        public function test_stickies_more_than_posts_per_page_second_page() {
     115                // There are three stickies, get the second page of two. Is this composed of the
     116                // third sticky?
     117                $this->go_to( '/?paged=2&posts_per_page=2' );
     118                $q = $GLOBALS['wp_query'];
     119                $this->assertEquals( $q->posts[0]->ID, self::$posts[14] );
     120        }
     121
     122        /**
     123         * @group 27282
     124         */
     125        public function test_stickies_not_included_in_initial_query_should_not_increase_number_of_results_returned() {
     126                $this->go_to( '/' );
     127                $q = $GLOBALS['wp_query'];
     128                $this->assertEquals( $q->get( 'posts_per_page' ), count( $q->posts ) );
     129        }
     130
     131        /**
     132         * @group 27282
     133         */
     134        public function test_stickies_should_offset_starting_post_on_subsequent_pages() {
     135                $this->go_to( '/?paged=2' );
     136                $q = $GLOBALS['wp_query'];
     137
     138                /*
     139                 * There are three stickies. Two (2 and 8) naturally appear on the first page.
     140                 * The third (14) pads the first page by 1, offsetting the second page by 1.
     141                 */
     142                $this->assertEquals( self::$posts[9], $q->posts[0]->ID );
     143        }
     144
     145        /**
     146         * @group 27282
     147         */
     148        public function test_stickies_should_not_appear_in_their_normal_order_on_inner_pages() {
     149                $this->go_to( '/?paged=2' );
     150                $q = $GLOBALS['wp_query'];
     151
     152                $this->assertNotContains( self::$posts[14], wp_list_pluck( $q->posts, 'ID' ) );
     153        }
     154
    108155        public function set_ignore_sticky_posts( $q ) {
    109156                $q->set( 'ignore_sticky_posts', true );
    110157        }