| 159 | |
| 160 | function test_get_adjacent_post() { |
| 161 | $post_id = $this->factory->post->create(); |
| 162 | sleep( 1 ); // get_adjacent_post() doesn't handle posts created in the same second. |
| 163 | $post_id2 = $this->factory->post->create(); |
| 164 | |
| 165 | $orig_post = $GLOBALS['post']; |
| 166 | $GLOBALS['post'] = get_post( $post_id2 ); |
| 167 | |
| 168 | $p = get_adjacent_post(); |
| 169 | $this->assertInstanceOf( 'WP_Post', $p ); |
| 170 | $this->assertEquals( $post_id, $p->ID ); |
| 171 | |
| 172 | // The same again to make sure a cached query returns the same result |
| 173 | $p = get_adjacent_post(); |
| 174 | $this->assertInstanceOf( 'WP_Post', $p ); |
| 175 | $this->assertEquals( $post_id, $p->ID ); |
| 176 | |
| 177 | // Test next |
| 178 | $p = get_adjacent_post( false, '', false ); |
| 179 | $this->assertEquals( '', $p ); |
| 180 | |
| 181 | unset( $GLOBALS['post'] ); |
| 182 | $this->assertNull( get_adjacent_post() ); |
| 183 | |
| 184 | $GLOBALS['post'] = $orig_post; |
| 185 | |
| 186 | // Tests requiring creating more posts can't be run since the query |
| 187 | // cache in get_adjacent_post() requires a fresh page load to invalidate. |
| 188 | } |