WordPress.org

Make WordPress Core

Changeset 1326 in tests


Ignore:
Timestamp:
07/28/13 23:22:34 (9 months ago)
Author:
alexkingorg
Message:

unit tests for #WP19373

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/post.php

    r1323 r1326  
    2020        parent::tearDown(); 
    2121    } 
    22  
     22     
    2323    // helper function: return the timestamp(s) of cron jobs for the specified hook and post 
    2424    function _next_schedule_for_post($hook, $id) { 
    2525        return wp_next_scheduled('publish_future_post', array(0=>intval($id))); 
    2626    } 
    27  
     27     
     28    // helper function, unsets current user globally 
     29    function _unset_current_user() { 
     30        global $current_user, $user_ID; 
     31         
     32        $current_user = $user_ID = null; 
     33    } 
     34     
    2835    // test simple valid behavior: insert and get a post 
    2936    function test_vb_insert_get_delete() { 
     
    694701        $this->assertEquals( 1, $numpages ); 
    695702        $this->assertEquals( array( 'Page 0' ), $pages ); 
     703    } 
     704 
     705    /** 
     706     * @ticket 19373 
     707     */ 
     708    function test_insert_programmatic_sanitized() { 
     709        $this->_unset_current_user(); 
     710         
     711        register_taxonomy( 'test_tax', 'post' ); 
     712         
     713        $title = rand_str(); 
     714        $post_data = array( 
     715            'post_author' => $this->author_id, 
     716            'post_status' => 'public', 
     717            'post_content' => rand_str(), 
     718            'post_title' => $title, 
     719            'tax_input' => array( 
     720                'test_tax' => array( 'term', 'term2', 'term3' ) 
     721            ) 
     722        ); 
     723        $insert_post_id = wp_insert_post( $post_data, true, true ); 
     724        $this->assertTrue( ( is_int($insert_post_id) && $insert_post_id > 0 ) ); 
     725         
     726        $post = get_post( $insert_post_id ); 
     727        $this->assertEquals( $post->post_author, $this->author_id ); 
     728        $this->assertEquals( $post->post_title, $title ); 
     729    } 
     730 
     731    /** 
     732     * @ticket 19373 
     733     */ 
     734    function test_insert_programmatic_without_current_user_success() { 
     735        $this->_unset_current_user(); 
     736         
     737        register_taxonomy( 'test_tax', 'post' ); 
     738         
     739        $title = rand_str(); 
     740        $post_data = array( 
     741            'post_author' => $this->author_id, 
     742            'post_status' => 'public', 
     743            'post_content' => rand_str(), 
     744            'post_title' => $title, 
     745            'tax_input' => array( 
     746                'test_tax' => array( 'term', 'term2', 'term3' ) 
     747            ) 
     748        ); 
     749        // with sanitize set to false 
     750        $insert_post_id = wp_insert_post( $post_data, true, false ); 
     751         
     752        $post = get_post( $insert_post_id ); 
     753        $this->assertEquals( $post->post_author, $this->author_id ); 
     754        $this->assertEquals( $post->post_title, $title ); 
     755         
     756        $terms = wp_get_object_terms( $insert_post_id, 'test_tax' ); 
     757        $this->assertTrue( ( is_array( $terms ) && count( $terms ) == 3 ) ); 
     758    } 
     759 
     760    /** 
     761     * @ticket 19373 
     762     */ 
     763    function test_insert_programmatic_without_current_user_fail() { 
     764        $this->_unset_current_user(); 
     765         
     766        register_taxonomy( 'test_tax', 'post' ); 
     767         
     768        $title = rand_str(); 
     769        $post_data = array( 
     770            // post_author not set 
     771            'post_status' => 'public', 
     772            'post_content' => rand_str(), 
     773            'post_title' => $title, 
     774            'tax_input' => array( 
     775                'test_tax' => array( 'term', 'term2', 'term3' ) 
     776            ) 
     777        ); 
     778        // with sanitize set to false 
     779        $insert_post_id = wp_insert_post( $post_data, true, false ); 
     780 
     781        // should error because no default user exists and no post author is passed in 
     782        $this->assertInstanceOf( 'WP_Error', $insert_post_id ); 
     783        $this->assertEquals( 'empty_author', $insert_post_id->get_error_code() ); 
    696784    } 
    697785 
Note: See TracChangeset for help on using the changeset viewer.