Changeset 39035 for trunk/tests/phpunit/tests/user/capabilities.php
- Timestamp:
- 10/30/2016 06:30:03 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/user/capabilities.php
r39016 r39035 9 9 class Tests_User_Capabilities extends WP_UnitTestCase { 10 10 11 protected static $users = array(); 11 protected static $users = array( 12 'administrator' => null, 13 'editor' => null, 14 'author' => null, 15 'contributor' => null, 16 'subscriber' => null, 17 ); 18 protected static $super_admin = null; 12 19 13 20 public static function wpSetUpBeforeClass( $factory ) { … … 19 26 'subscriber' => $factory->user->create_and_get( array( 'role' => 'subscriber' ) ), 20 27 ); 28 self::$super_admin = $factory->user->create_and_get( array( 'role' => 'contributor' ) ); 29 grant_super_admin( self::$super_admin->ID ); 21 30 } 22 31 … … 522 531 } 523 532 533 /** 534 * @dataProvider data_user_with_role_can_edit_own_post 535 * 536 * @param string $role User role name 537 * @param bool $can_edit_own_post Can users with this role edit their own posts? 538 */ 539 public function test_user_can_edit_comment_on_own_post( $role, $can_edit_own_post ) { 540 $owner = self::$users[ $role ]; 541 $post = self::factory()->post->create_and_get( array( 542 'post_author' => $owner->ID, 543 ) ); 544 $comment = self::factory()->comment->create_and_get( array( 545 'comment_post_ID' => $post->ID, 546 ) ); 547 548 $owner_can_edit = user_can( $owner->ID, 'edit_comment', $comment->comment_ID ); 549 $this->assertSame( $can_edit_own_post, $owner_can_edit ); 550 } 551 552 /** 553 * @dataProvider data_user_with_role_can_edit_others_posts 554 * 555 * @param string $role User role name 556 * @param bool $can_edit_others_post Can users with this role edit others' posts? 557 */ 558 public function test_user_can_edit_comment_on_others_post( $role, $can_edit_others_post ) { 559 $user = self::$users[ $role ]; 560 $owner = self::factory()->user->create_and_get( array( 561 'role' => 'editor', 562 ) ); 563 $post = self::factory()->post->create_and_get( array( 564 'post_author' => $owner->ID, 565 ) ); 566 $comment = self::factory()->comment->create_and_get( array( 567 'comment_post_ID' => $post->ID, 568 ) ); 569 570 $user_can_edit = user_can( $user->ID, 'edit_comment', $comment->comment_ID ); 571 $this->assertSame( $can_edit_others_post, $user_can_edit ); 572 } 573 574 public function data_user_with_role_can_edit_own_post() { 575 $data = array(); 576 $caps = $this->getPrimitiveCapsAndRoles(); 577 578 foreach ( self::$users as $role => $null ) { 579 $data[] = array( 580 $role, 581 in_array( $role, $caps['edit_published_posts'], true ), 582 ); 583 } 584 585 return $data; 586 } 587 588 public function data_user_with_role_can_edit_others_posts() { 589 $data = array(); 590 $caps = $this->getPrimitiveCapsAndRoles(); 591 592 foreach ( self::$users as $role => $null ) { 593 $data[] = array( 594 $role, 595 in_array( $role, $caps['edit_others_posts'], true ), 596 ); 597 } 598 599 return $data; 600 } 601 524 602 function test_super_admin_caps() { 525 603 if ( ! is_multisite() ) { … … 528 606 } 529 607 $caps = $this->getAllCapsAndRoles(); 530 531 $user = self::$users['administrator']; 532 grant_super_admin( $user->ID ); 608 $user = self::$super_admin; 533 609 534 610 $this->assertTrue( is_super_admin( $user->ID ) ); … … 1346 1422 } 1347 1423 1424 public function test_only_admins_and_super_admins_can_remove_users() { 1425 if ( is_multisite() ) { 1426 $this->assertTrue( user_can( self::$super_admin->ID, 'remove_user', self::$users['subscriber']->ID ) ); 1427 } 1428 1429 $this->assertTrue( user_can( self::$users['administrator']->ID, 'remove_user', self::$users['subscriber']->ID ) ); 1430 1431 $this->assertFalse( user_can( self::$users['editor']->ID, 'remove_user', self::$users['subscriber']->ID ) ); 1432 $this->assertFalse( user_can( self::$users['author']->ID, 'remove_user', self::$users['subscriber']->ID ) ); 1433 $this->assertFalse( user_can( self::$users['contributor']->ID, 'remove_user', self::$users['subscriber']->ID ) ); 1434 $this->assertFalse( user_can( self::$users['subscriber']->ID, 'remove_user', self::$users['subscriber']->ID ) ); 1435 } 1436 1437 public function test_only_super_admins_can_delete_users_on_multisite() { 1438 if ( ! is_multisite() ) { 1439 $this->markTestSkipped( 'Test only runs on multisite' ); 1440 } 1441 1442 $this->assertTrue( user_can( self::$super_admin->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1443 1444 $this->assertFalse( user_can( self::$users['administrator']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1445 $this->assertFalse( user_can( self::$users['editor']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1446 $this->assertFalse( user_can( self::$users['author']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1447 $this->assertFalse( user_can( self::$users['contributor']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1448 $this->assertFalse( user_can( self::$users['subscriber']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1449 } 1450 1451 public function test_only_admins_can_delete_users_on_single_site() { 1452 if ( is_multisite() ) { 1453 $this->markTestSkipped( 'Test does not run on multisite' ); 1454 } 1455 1456 $this->assertTrue( user_can( self::$users['administrator']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1457 1458 $this->assertFalse( user_can( self::$users['editor']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1459 $this->assertFalse( user_can( self::$users['author']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1460 $this->assertFalse( user_can( self::$users['contributor']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1461 $this->assertFalse( user_can( self::$users['subscriber']->ID, 'delete_user', self::$users['subscriber']->ID ) ); 1462 } 1463 1464 public function test_only_admins_and_super_admins_can_promote_users() { 1465 if ( is_multisite() ) { 1466 $this->assertTrue( user_can( self::$super_admin->ID, 'promote_user', self::$users['subscriber']->ID ) ); 1467 } 1468 1469 $this->assertTrue( user_can( self::$users['administrator']->ID, 'promote_user', self::$users['subscriber']->ID ) ); 1470 1471 $this->assertFalse( user_can( self::$users['editor']->ID, 'promote_user', self::$users['subscriber']->ID ) ); 1472 $this->assertFalse( user_can( self::$users['author']->ID, 'promote_user', self::$users['subscriber']->ID ) ); 1473 $this->assertFalse( user_can( self::$users['contributor']->ID, 'promote_user', self::$users['subscriber']->ID ) ); 1474 $this->assertFalse( user_can( self::$users['subscriber']->ID, 'promote_user', self::$users['subscriber']->ID ) ); 1475 } 1476 1348 1477 /** 1349 1478 * @ticket 33694 … … 1405 1534 $user = self::$users['administrator']; 1406 1535 $user->add_cap( 'manage_network_users' ); 1407 $super_admin = self::$users['subscriber'];1408 grant_super_admin( $super_admin->ID );1409 1536 1410 1537 wp_set_current_user( $user->ID ); 1411 1538 1412 $can_edit_user = current_user_can( 'edit_user', $super_admin->ID );1539 $can_edit_user = current_user_can( 'edit_user', self::$super_admin->ID ); 1413 1540 1414 1541 $user->remove_cap( 'manage_network_users' ); 1415 revoke_super_admin( $super_admin->ID );1416 1542 1417 1543 $this->assertFalse( $can_edit_user );
Note: See TracChangeset
for help on using the changeset viewer.