| 296 | /** |
| 297 | * @ticket 31635 |
| 298 | */ |
| 299 | public function test_bulk_edit_posts_should_publish_scheduled_post() { |
| 300 | wp_set_current_user( self::$admin_id ); |
| 301 | |
| 302 | $post = self::factory()->post->create( |
| 303 | array( |
| 304 | 'post_author' => self::$author_ids[0], |
| 305 | 'comment_status' => 'closed', |
| 306 | 'ping_status' => 'closed', |
| 307 | 'post_status' => 'future', |
| 308 | 'post_date' => gmdate( 'Y-m-d H:i:s', strtotime( '+1 month' ) ), |
| 309 | ) |
| 310 | ); |
| 311 | |
| 312 | $request = array( |
| 313 | 'post_type' => 'post', |
| 314 | 'post_author' => -1, |
| 315 | 'ping_status' => -1, |
| 316 | 'comment_status' => -1, |
| 317 | '_status' => 'publish', |
| 318 | 'post' => array( $post ), |
| 319 | ); |
| 320 | |
| 321 | bulk_edit_posts( $request ); |
| 322 | |
| 323 | $this->assertSame( 'publish', get_post_status( $post ) ); |
| 324 | $this->assertLessThanOrEqual( gmdate( 'Y-m-d H:i:s' ), get_post_time( 'Y-m-d H:i:s', false, $post ) ); |
| 325 | } |
| 326 | |
| 327 | /** |
| 328 | * @ticket 31635 |
| 329 | */ |
| 330 | public function test_bulk_edit_posts_should_publish_draft_immediately() { |
| 331 | wp_set_current_user( self::$admin_id ); |
| 332 | |
| 333 | // Create draft last edited a month ago |
| 334 | $post = self::factory()->post->create( |
| 335 | array( |
| 336 | 'post_author' => self::$author_ids[0], |
| 337 | 'comment_status' => 'closed', |
| 338 | 'ping_status' => 'closed', |
| 339 | 'post_status' => 'draft', |
| 340 | 'post_date' => gmdate( 'Y-m-d H:i:s', strtotime( '-1 month' ) ), |
| 341 | ) |
| 342 | ); |
| 343 | |
| 344 | $request = array( |
| 345 | 'post_type' => 'post', |
| 346 | 'post_author' => -1, |
| 347 | 'ping_status' => -1, |
| 348 | 'comment_status' => -1, |
| 349 | '_status' => 'publish', |
| 350 | 'post' => array( $post ), |
| 351 | ); |
| 352 | |
| 353 | bulk_edit_posts( $request ); |
| 354 | |
| 355 | $this->assertSame( 'publish', get_post_status( $post ) ); |
| 356 | |
| 357 | // Expect to be published within the last minute (to consider slow testing environment). |
| 358 | $minute_before = gmdate( 'Y-m-d H:i:s', strtotime( '-1 minute' ) ); |
| 359 | $this->assertGreaterThanOrEqual( $minute_before, get_post_time( 'Y-m-d H:i:s', false, $post ) ); |
| 360 | $this->assertLessThanOrEqual( gmdate( 'Y-m-d H:i:s' ), get_post_time( 'Y-m-d H:i:s', false, $post ) ); |
| 361 | } |
| 362 | |