Make WordPress Core


Ignore:
Timestamp:
07/18/2011 05:11:51 PM (13 years ago)
Author:
ryan
Message:

create_post_meta, edit_post_meta, and delete_post_meta cap tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_user_capabilities.php

    r366 r375  
    2828        unset($GLOBALS['wp_user_roles']);
    2929        #$GLOBALS['wp_roles'] = new WP_Roles();
     30    }
     31
     32    function _meta_yes_you_can( $key, $post_id, $user_id, $cap ) {
     33        return true;
     34    }
     35
     36    function _meta_no_you_cant( $key, $post_id, $user_id, $cap ) {
     37        return false;
    3038    }
    3139
     
    446454        $this->assertFalse($author_2->has_cap('delete_post', $post));
    447455        $this->assertFalse($contributor->has_cap('delete_post', $post));
     456
     457        // Test meta authorization callbacks
     458        if ( function_exists( 'register_meta') ) {
     459            $this->assertTrue( $admin->has_cap('edit_post_meta',  $post) );
     460            $this->assertTrue( $admin->has_cap('create_post_meta',  $post) );
     461            $this->assertTrue( $admin->has_cap('delete_post_meta',  $post) );
     462
     463            $this->assertFalse( $admin->has_cap('edit_post_meta', $post, '_protected') );
     464            $this->assertFalse( $admin->has_cap('create_post_meta', $post, '_protected') );
     465            $this->assertFalse( $admin->has_cap('delete_post_meta', $post, '_protected') );
     466
     467            register_meta( '_protected', 'post', array( 'auth_callback' => array( &$this, '_meta_yes_you_can' ) ) );
     468            $this->assertTrue( $admin->has_cap('edit_post_meta',  $post, '_protected') );
     469            $this->assertTrue( $admin->has_cap('create_post_meta',  $post, '_protected') );
     470            $this->assertTrue( $admin->has_cap('delete_post_meta',  $post, '_protected') );
     471
     472            $this->assertTrue( $admin->has_cap('edit_post_meta', $post, 'not_protected') );
     473            $this->assertTrue( $admin->has_cap('create_post_meta', $post, 'not_protected') );
     474            $this->assertTrue( $admin->has_cap('delete_post_meta', $post, 'not_protected') );
     475
     476            register_meta( 'not_protected', 'post', array( 'auth_callback' => array( &$this, '_meta_no_you_cant') ) );
     477            $this->assertFalse( $admin->has_cap('edit_post_meta',  $post, 'not_protected') );
     478            $this->assertFalse( $admin->has_cap('create_post_meta',  $post, 'not_protected') );
     479            $this->assertFalse( $admin->has_cap('delete_post_meta',  $post, 'not_protected') );
     480        }
    448481    }
    449482
Note: See TracChangeset for help on using the changeset viewer.