Changeset 272 in tests
- Timestamp:
- 11/22/2009 10:50:39 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
wp-testcase/test_cron.php
r217 r272 1 1 <?php 2 /*3 * Disable the WP Cron test for the moment as it kills the whole test suite.4 * TODO - Fix it to work with the new cron implementation in trunk5 *6 2 // test the cron scheduling functions 7 3 8 class WPTestCron extends _WPEmptyBlog {4 class WPTestCronScheduling extends _WPEmptyBlog { 9 5 function setUp() { 10 6 parent::setUp(); … … 124 120 $this->assertFalse( wp_next_scheduled($hook, $args) ); 125 121 } 126 127 function _do_cron() { 128 // FIXME: wp-cron.php is difficult to test, could be wrapped in a function 129 $_GET['check'] = wp_hash('187425'); 130 require(ABSPATH.'/wp-cron.php'); 131 } 132 133 function test_run_schedule_single() { 134 // schedule an event, run it, and make sure the hook is called 135 $hook = rand_str(); 136 $args = array(rand_str()); 137 $timestamp = strtotime('-1 second'); 138 139 // register a test action 140 $a = new MockAction(); 141 add_action($hook, array(&$a, 'action')); 142 143 // schedule an event for 1 second ago 144 wp_schedule_single_event( $timestamp, $hook, $args ); 145 $this->assertEquals( $timestamp, wp_next_scheduled($hook, $args) ); 146 147 // run cron jobs 148 $this->_do_cron(); 149 150 // our action should have been called once with the correct args 151 $this->assertEquals( 1, $a->get_call_count() ); 152 $this->assertEquals( array($args), $a->get_args() ); 153 154 // it shouldn't appear in the schedule anymore 155 $this->assertFalse( wp_next_scheduled($hook, $args) ); 156 157 } 158 159 function test_run_schedule_recurring() { 160 // schedule a recurring event, run it, and make sure the hook is called 161 $hook = rand_str(); 162 $args = array(rand_str()); 163 $timestamp = strtotime('-1 second'); 164 $recur = 'hourly'; 165 166 // register a test action 167 $a = new MockAction(); 168 add_action($hook, array(&$a, 'action')); 169 170 // schedule an event for 1 second ago 171 wp_schedule_event( $timestamp, $recur, $hook, $args ); 172 $this->assertEquals( $timestamp, wp_next_scheduled($hook, $args) ); 173 $this->assertEquals( $recur, wp_get_schedule($hook, $args) ); 174 175 // run cron jobs 176 $this->_do_cron(); 177 178 // our action should have been called once with the correct args 179 $this->assertEquals( 1, $a->get_call_count() ); 180 $this->assertEquals( array($args), $a->get_args() ); 181 182 // it should appear in the schedule to run again in an hour's time 183 $this->assertEquals( $timestamp + 3600, wp_next_scheduled($hook, $args) ); 184 185 } 186 122 187 123 function test_duplicate_event() { 188 124 $this->knownWPBug(6966); … … 221 157 $this->assertEquals( $ts1, wp_next_scheduled($hook, $args) ); 222 158 } 223 159 } 160 161 /* 162 * Disable the WP Cron running test for the moment as it kills the whole test suite. 163 * TODO - Fix it to work with the new cron implementation in trunk 164 * 165 class WPTestCronRunning extends _WPEmptyBlog { 166 function setUp() { 167 parent::setUp(); 168 // make sure the schedule is clear 169 _set_cron_array(array()); 170 } 171 172 function tearDown() { 173 parent::tearDown(); 174 // make sure the schedule is clear 175 _set_cron_array(array()); 176 } 177 function _do_cron() { 178 // FIXME: wp-cron.php is difficult to test, could be wrapped in a function 179 $_GET['check'] = wp_hash('187425'); 180 require(ABSPATH.'/wp-cron.php'); 181 } 182 183 function test_run_schedule_single() { 184 // schedule an event, run it, and make sure the hook is called 185 $hook = rand_str(); 186 $args = array(rand_str()); 187 $timestamp = strtotime('-1 second'); 188 189 // register a test action 190 $a = new MockAction(); 191 add_action($hook, array(&$a, 'action')); 192 193 // schedule an event for 1 second ago 194 wp_schedule_single_event( $timestamp, $hook, $args ); 195 $this->assertEquals( $timestamp, wp_next_scheduled($hook, $args) ); 196 197 // run cron jobs 198 $this->_do_cron(); 199 200 // our action should have been called once with the correct args 201 $this->assertEquals( 1, $a->get_call_count() ); 202 $this->assertEquals( array($args), $a->get_args() ); 203 204 // it shouldn't appear in the schedule anymore 205 $this->assertFalse( wp_next_scheduled($hook, $args) ); 206 207 } 208 209 function test_run_schedule_recurring() { 210 // schedule a recurring event, run it, and make sure the hook is called 211 $hook = rand_str(); 212 $args = array(rand_str()); 213 $timestamp = strtotime('-1 second'); 214 $recur = 'hourly'; 215 216 // register a test action 217 $a = new MockAction(); 218 add_action($hook, array(&$a, 'action')); 219 220 // schedule an event for 1 second ago 221 wp_schedule_event( $timestamp, $recur, $hook, $args ); 222 $this->assertEquals( $timestamp, wp_next_scheduled($hook, $args) ); 223 $this->assertEquals( $recur, wp_get_schedule($hook, $args) ); 224 225 // run cron jobs 226 $this->_do_cron(); 227 228 // our action should have been called once with the correct args 229 $this->assertEquals( 1, $a->get_call_count() ); 230 $this->assertEquals( array($args), $a->get_args() ); 231 232 // it should appear in the schedule to run again in an hour's time 233 $this->assertEquals( $timestamp + 3600, wp_next_scheduled($hook, $args) ); 234 235 } 224 236 } 225 237 */
Note: See TracChangeset
for help on using the changeset viewer.