WordPress.org

Make WordPress Core

Changeset 13 in tests


Ignore:
Timestamp:
09/20/07 11:46:13 (7 years ago)
Author:
tellyworth
Message:

fix test_vb_insert_future_edit_bug

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_includes_post.php

    r1 r13  
    7474        $this->assertEquals(array($id), $cron_args['args']); 
    7575    } 
     76     
     77    // helper function: return the timestamp(s) of cron jobs for the specified hook and post 
     78    function _next_schedule_for_post($hook, $id) { 
     79        return wp_next_scheduled('publish_future_post', array(0=>strval($id))); 
     80    } 
    7681 
    7782    function test_vb_insert_future_edit_bug() { 
    78         // there was a bug that happens when you publish a future post, then change 
    79         // the timestamp - the original cron schedule is left intact so it's 
    80         // published at the wrong time. 
     83        // future post bug: posts get published at the wrong time if you edit the timestamp 
     84        // http://trac.wordpress.org/ticket/4710 
    8185 
    8286        $future_date_1 = strtotime('+1 day'); 
     
    9397        // insert a post and make sure the ID is ok 
    9498        $id = $this->post_ids[] = wp_insert_post($post); 
    95         #dmp(_get_cron_array()); 
    96         $this->assertTrue(is_numeric($id)); 
    97         $this->assertTrue($id > 0); 
    9899 
    99         $cron = _get_cron_array(); 
    100         dmp($future_date_1, $cron); 
     100        // fetch the post and make sure has the correct date and status 
     101        $out = wp_get_single_post($id); 
     102        $this->assertEquals('future', $out->post_status); 
     103        $this->assertEquals($post['post_date'], $out->post_date); 
     104 
     105        // check that there's a publish_future_post job scheduled at the right time 
     106        $this->assertEquals($future_date_1, $this->_next_schedule_for_post('publish_future_post', $id)); 
    101107 
    102108        // now save it again with a date further in the future 
    103109 
    104         // fetch the post and make sure it matches 
     110        $post['ID'] = $id; 
     111        $post['post_date'] = strftime("%Y-%m-%d %H:%M:%S", $future_date_2); 
     112        $post['post_date_gmt'] = NULL; 
     113        wp_update_post($post); 
     114 
     115        // fetch the post again and make sure it has the new post_date 
    105116        $out = wp_get_single_post($id); 
    106  
    107         $this->assertEquals($post['post_content'], $out->post_content); 
    108         $this->assertEquals($post['post_title'], $out->post_title); 
    109117        $this->assertEquals('future', $out->post_status); 
    110         $this->assertEquals($post['post_author'], $out->post_author); 
    111118        $this->assertEquals($post['post_date'], $out->post_date); 
    112119 
    113         // now change the date 
    114         $post['ID'] = $id; 
    115         $post['post_date'] = strftime("%Y-%m-%d %H:%M:%S", $future_date_1); 
    116         wp_update_post($post); 
    117  
    118         $this->assertEquals($post['post_content'], $out->post_content); 
    119         $this->assertEquals($post['post_title'], $out->post_title); 
    120         $this->assertEquals('future', $out->post_status); 
    121         $this->assertEquals($post['post_author'], $out->post_author); 
    122         $this->assertEquals($post['post_date'], $out->post_date); 
    123  
    124         $cron = _get_cron_array(); 
    125         dmp($future_date_2, $cron); 
    126  
    127         $this->assertTrue(is_array($cron[$future_date_2]['publish_future_post'])); 
    128         $cron_args = array_pop($cron[$future_date_2]['publish_future_post']); 
    129         $this->assertEquals('future', $cron_args['schedule']); 
    130         $this->assertEquals(array($id), $cron_args['args']); 
     120        // and the correct date on the cron job 
     121        $this->assertEquals($future_date_2, $this->_next_schedule_for_post('publish_future_post', $id)); 
    131122    } 
    132123 
Note: See TracChangeset for help on using the changeset viewer.