Make WordPress Core

Changeset 1326 in tests


Ignore:
Timestamp:
07/28/2013 11:22:34 PM (13 years 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.