WordPress.org

Make WordPress Core

Ticket #17807: 17807-tests.2.patch

File 17807-tests.2.patch, 3.1 KB (added by ethitter, 4 years ago)
  • tests/phpunit/tests/link.php

     
    9696                $wp_rewrite->flush_rules(); 
    9797        } 
    9898 
     99        /** 
     100         * @ticket 17807 
     101         */ 
     102        function test_get_adjacent_post() { 
     103                // Need some sample posts to test adjacency 
     104                $post_one = $this->factory->post->create( array( 
     105                        'post_title' => 'First', 
     106                        'post_date' => '2012-01-01 12:00:00' 
     107                ) ); 
     108 
     109                $post_two = $this->factory->post->create( array( 
     110                        'post_title' => 'Second', 
     111                        'post_date' => '2012-02-01 12:00:00' 
     112                ) ); 
     113 
     114                $post_three = $this->factory->post->create( array( 
     115                        'post_title' => 'Third', 
     116                        'post_date' => '2012-03-01 12:00:00' 
     117                ) ); 
     118 
     119                $post_four = $this->factory->post->create( array( 
     120                        'post_title' => 'Fourth', 
     121                        'post_date' => '2012-04-01 12:00:00' 
     122                ) ); 
     123 
     124                // Assign some terms 
     125                wp_set_object_terms( $post_one, 'wordpress', 'category', false ); 
     126                wp_set_object_terms( $post_three, 'wordpress', 'category', false ); 
     127 
     128                wp_set_object_terms( $post_two, 'plugins', 'post_tag', false ); 
     129                wp_set_object_terms( $post_four, 'plugins', 'post_tag', false ); 
     130 
     131                // Test normal post adjacency 
     132                $this->go_to( get_permalink( $post_two ) ); 
     133 
     134                $this->assertEquals( get_post( $post_one ), get_adjacent_post( false, '', true ) ); 
     135                $this->assertEquals( get_post( $post_three ), get_adjacent_post( false, '', false ) ); 
     136 
     137                $this->assertNotEquals( get_post( $post_two ), get_adjacent_post( false, '', true ) ); 
     138                $this->assertNotEquals( get_post( $post_two ), get_adjacent_post( false, '', false ) ); 
     139 
     140                // Test category adjacency 
     141                $this->go_to( get_permalink( $post_one ) ); 
     142 
     143                $this->assertEquals( '', get_adjacent_post( true, '', true, 'category' ) ); 
     144                $this->assertEquals( get_post( $post_three ), get_adjacent_post( true, '', false, 'category' ) ); 
     145 
     146                // Test tag adjacency 
     147                $this->go_to( get_permalink( $post_two ) ); 
     148 
     149                $this->assertEquals( '', get_adjacent_post( true, '', true, 'post_tag' ) ); 
     150                $this->assertEquals( get_post( $post_four ), get_adjacent_post( true, '', false, 'post_tag' ) ); 
     151 
     152                // Test normal boundary post 
     153                $this->go_to( get_permalink( $post_two ) ); 
     154 
     155                $this->assertEquals( get_posts( array( 'p' => $post_one ) ), get_boundary_post( false, '', true ) ); 
     156                $this->assertEquals( get_posts( array( 'p' => $post_four ) ), get_boundary_post( false, '', false ) ); 
     157 
     158                // Test category boundary post 
     159                $this->go_to( get_permalink( $post_one ) ); 
     160 
     161                $this->assertEquals( get_posts( array( 'p' => $post_one ) ), get_boundary_post( true, '', true, 'category' ) ); 
     162                $this->assertEquals( get_posts( array( 'p' => $post_three ) ), get_boundary_post( true, '', false, 'category' ) ); 
     163 
     164                // Test tag boundary post 
     165                $this->go_to( get_permalink( $post_two ) ); 
     166 
     167                $this->assertEquals( get_posts( array( 'p' => $post_two ) ), get_boundary_post( true, '', true, 'post_tag' ) ); 
     168                $this->assertEquals( get_post( array( 'p' => $post_four ) ), get_boundary_post( true, '', false, 'post_tag' ) ); 
     169        } 
    99170} 
     171 No newline at end of file