| | 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 | |