WordPress.org

Make WordPress Core

Changeset 296 in tests


Ignore:
Timestamp:
05/06/2010 08:41:36 PM (8 years ago)
Author:
westi
Message:

Beginings of cross DST future post publishing tests.
See WP#9285. Needs more work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_includes_post.php

    r256 r296  
    7979    }
    8080   
    81     function test_vb_insert_future_edit_bug() {
     81    function test_vb_insert_future_over_dst() {
     82        // insert a post with a future date, and make sure the status and cron schedule are correct
     83        $old_option = get_option('timezone_string');
     84        update_option('timezone_string', 'Europe/London');
     85       
     86        // Some magic days - one dst one not
     87        $future_date_1 = strtotime('June 21st +1 year');
     88        $future_date_2 = strtotime('Jan 11th +1 year');
     89               
     90
     91        $post = array(
     92            'post_author' => $this->author->ID,
     93            'post_status' => 'publish',
     94            'post_content' => rand_str(),
     95            'post_title' => rand_str(),
     96            'post_date'  => strftime("%Y-%m-%d %H:%M:%S", $future_date_1),
     97        );
     98
     99        // insert a post and make sure the ID is ok
     100        $id = $this->post_ids[] = wp_insert_post($post);
     101        var_dump(get_option('cron'));
     102        // fetch the post and make sure has the correct date and status
     103        $out = wp_get_single_post($id);
     104        $this->assertEquals('future', $out->post_status);
     105        $this->assertEquals($post['post_date'], $out->post_date);
     106
     107        // check that there's a publish_future_post job scheduled at the right time
     108        $this->assertEquals($future_date_1, $this->_next_schedule_for_post('publish_future_post', $id));
     109
     110        // now save it again with a date further in the future
     111
     112        $post['ID'] = $id;
     113        $post['post_date'] = strftime("%Y-%m-%d %H:%M:%S", $future_date_2);
     114        $post['post_date_gmt'] = NULL;
     115        wp_update_post($post);
     116
     117        // fetch the post again and make sure it has the new post_date
     118        $out = wp_get_single_post($id);
     119        $this->assertEquals('future', $out->post_status);
     120        $this->assertEquals($post['post_date'], $out->post_date);
     121
     122        // and the correct date on the cron job
     123        $this->assertEquals($future_date_2, $this->_next_schedule_for_post('publish_future_post', $id));
     124        update_option('timezone_string', $old_option);
     125       
     126    }   
     127
     128function test_vb_insert_future_edit_bug() {
    82129        // future post bug: posts get published at the wrong time if you edit the timestamp
    83130        // http://trac.wordpress.org/ticket/4710
Note: See TracChangeset for help on using the changeset viewer.