Changeset 49830 for trunk/tests/phpunit/tests/query/postStatus.php
- Timestamp:
- 12/17/2020 04:15:38 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/query/postStatus.php
r49603 r49830 7 7 public static $editor_user_id; 8 8 public static $author_user_id; 9 public static $subscriber_user_id; 9 10 public static $editor_private_post; 10 11 public static $author_private_post; … … 13 14 14 15 public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { 15 self::$editor_user_id = $factory->user->create( array( 'role' => 'editor' ) ); 16 self::$author_user_id = $factory->user->create( array( 'role' => 'author' ) ); 16 self::$editor_user_id = $factory->user->create( array( 'role' => 'editor' ) ); 17 self::$author_user_id = $factory->user->create( array( 'role' => 'author' ) ); 18 self::$subscriber_user_id = $factory->user->create( array( 'role' => 'subscriber' ) ); 17 19 18 20 self::$editor_private_post = $factory->post->create( … … 458 460 $this->assertContains( $p1, wp_list_pluck( $q->posts, 'ID' ) ); 459 461 } 462 463 /** 464 * @ticket 48556 465 * @ticket 13509 466 */ 467 public function test_non_singular_queries_using_post_type_any_should_respect_post_type_read_private_posts_cap() { 468 register_post_type( 469 'wptests_pt1', 470 array( 471 'exclude_from_search' => false, 472 'capabilities' => [ 473 'read_private_posts' => 'read_private_pt1s', 474 ], 475 ) 476 ); 477 478 register_post_type( 479 'wptests_pt2', 480 array( 481 'exclude_from_search' => false, 482 ) 483 ); 484 485 $post_ids = array(); 486 487 $post_ids['wptests_pt1_p1'] = $this->factory->post->create( 488 array( 489 'post_type' => 'wptests_pt1', 490 'post_status' => 'private', 491 'post_author' => self::$editor_user_id, 492 ) 493 ); 494 495 $post_ids['wptests_pt1_p2'] = $this->factory->post->create( 496 array( 497 'post_type' => 'wptests_pt1', 498 'post_status' => 'publish', 499 'post_author' => self::$editor_user_id, 500 ) 501 ); 502 503 $post_ids['wptests_pt2_p1'] = $this->factory->post->create( 504 array( 505 'post_type' => 'wptests_pt2', 506 'post_status' => 'private', 507 'post_author' => self::$editor_user_id, 508 ) 509 ); 510 511 $post_ids['wptests_pt2_p2'] = $this->factory->post->create( 512 array( 513 'post_type' => 'wptests_pt2', 514 'post_status' => 'publish', 515 'post_author' => self::$editor_user_id, 516 ) 517 ); 518 519 wp_set_current_user( 0 ); 520 521 $q = new WP_Query( 522 array( 523 'post_type' => 'any', 524 ) 525 ); 526 527 $this->assertSameSets( array( $post_ids['wptests_pt1_p2'], $post_ids['wptests_pt2_p2'] ), wp_list_pluck( $q->posts, 'ID' ) ); 528 529 wp_set_current_user( self::$subscriber_user_id ); 530 $GLOBALS['current_user']->add_cap( 'read_private_pt1s' ); 531 532 $q = new WP_Query( 533 array( 534 'post_type' => 'any', 535 ) 536 ); 537 538 $this->assertSameSets( array( $post_ids['wptests_pt1_p1'], $post_ids['wptests_pt1_p2'], $post_ids['wptests_pt2_p2'] ), wp_list_pluck( $q->posts, 'ID' ) ); 539 } 540 541 /** 542 * @ticket 48556 543 * @ticket 13509 544 */ 545 public function test_non_singular_queries_using_multiple_post_type_should_respect_post_type_read_private_posts_cap() { 546 wp_set_current_user( 0 ); 547 548 register_post_type( 549 'wptests_pt1', 550 array( 551 'exclude_from_search' => false, 552 'capabilities' => [ 553 'read_private_posts' => 'read_private_pt1s', 554 ], 555 ) 556 ); 557 558 register_post_type( 559 'wptests_pt2', 560 array( 561 'exclude_from_search' => false, 562 ) 563 ); 564 565 $post_ids = array(); 566 567 $post_ids['wptests_pt1_p1'] = $this->factory->post->create( 568 array( 569 'post_type' => 'wptests_pt1', 570 'post_status' => 'private', 571 'post_author' => self::$editor_user_id, 572 ) 573 ); 574 575 $post_ids['wptests_pt1_p2'] = $this->factory->post->create( 576 array( 577 'post_type' => 'wptests_pt1', 578 'post_status' => 'publish', 579 'post_author' => self::$editor_user_id, 580 ) 581 ); 582 583 $post_ids['wptests_pt2_p1'] = $this->factory->post->create( 584 array( 585 'post_type' => 'wptests_pt2', 586 'post_status' => 'private', 587 'post_author' => self::$editor_user_id, 588 ) 589 ); 590 591 $post_ids['wptests_pt2_p2'] = $this->factory->post->create( 592 array( 593 'post_type' => 'wptests_pt2', 594 'post_status' => 'publish', 595 'post_author' => self::$editor_user_id, 596 ) 597 ); 598 599 $q = new WP_Query( 600 array( 601 'post_type' => 'any', 602 ) 603 ); 604 605 $this->assertSameSets( array( $post_ids['wptests_pt1_p2'], $post_ids['wptests_pt2_p2'] ), wp_list_pluck( $q->posts, 'ID' ) ); 606 607 $u = $this->factory->user->create(); 608 609 wp_set_current_user( self::$subscriber_user_id ); 610 $GLOBALS['current_user']->add_cap( 'read_private_pt1s' ); 611 612 $q = new WP_Query( 613 array( 614 'post_type' => [ 'wptests_pt1', 'wptests_pt2' ], 615 ) 616 ); 617 618 $this->assertSameSets( array( $post_ids['wptests_pt1_p1'], $post_ids['wptests_pt1_p2'], $post_ids['wptests_pt2_p2'] ), wp_list_pluck( $q->posts, 'ID' ) ); 619 } 460 620 }
Note: See TracChangeset
for help on using the changeset viewer.