[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/backup/util/helper/tests/ -> cronhelper_test.php (source)

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Unit tests for backups cron helper.
  19   *
  20   * @package   core_backup
  21   * @category  phpunit
  22   * @copyright 2012 Frédéric Massart <[email protected]>
  23   * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  
  26  defined('MOODLE_INTERNAL') || die();
  27  
  28  global $CFG;
  29  require_once($CFG->dirroot . '/backup/util/helper/backup_cron_helper.class.php');
  30  
  31  /**
  32   * Unit tests for backup cron helper
  33   */
  34  class backup_cron_helper_testcase extends advanced_testcase {
  35  
  36      /**
  37       * Test {@link backup_cron_automated_helper::calculate_next_automated_backup}.
  38       */
  39      public function test_next_automated_backup() {
  40          $this->resetAfterTest();
  41          set_config('backup_auto_active', '1', 'backup');
  42  
  43          // Notes
  44          // - backup_auto_weekdays starts on Sunday
  45          // - Tests cannot be done in the past
  46          // - Only the DST on the server side is handled.
  47  
  48          // Every Tue and Fri at 11pm.
  49          set_config('backup_auto_weekdays', '0010010', 'backup');
  50          set_config('backup_auto_hour', '23', 'backup');
  51          set_config('backup_auto_minute', '0', 'backup');
  52          $timezone = 99;
  53  
  54          $now = strtotime('next Monday 17:00:00');
  55          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  56          $this->assertEquals('2-23:00', date('w-H:i', $next));
  57  
  58          $now = strtotime('next Tuesday 18:00:00');
  59          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  60          $this->assertEquals('2-23:00', date('w-H:i', $next));
  61  
  62          $now = strtotime('next Wednesday 17:00:00');
  63          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  64          $this->assertEquals('5-23:00', date('w-H:i', $next));
  65  
  66          $now = strtotime('next Thursday 17:00:00');
  67          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  68          $this->assertEquals('5-23:00', date('w-H:i', $next));
  69  
  70          $now = strtotime('next Friday 17:00:00');
  71          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  72          $this->assertEquals('5-23:00', date('w-H:i', $next));
  73  
  74          $now = strtotime('next Saturday 17:00:00');
  75          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  76          $this->assertEquals('2-23:00', date('w-H:i', $next));
  77  
  78          $now = strtotime('next Sunday 17:00:00');
  79          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  80          $this->assertEquals('2-23:00', date('w-H:i', $next));
  81  
  82          // Every Sun and Sat at 12pm.
  83          set_config('backup_auto_weekdays', '1000001', 'backup');
  84          set_config('backup_auto_hour', '0', 'backup');
  85          set_config('backup_auto_minute', '0', 'backup');
  86          $timezone = 99;
  87  
  88          $now = strtotime('next Monday 17:00:00');
  89          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  90          $this->assertEquals('6-00:00', date('w-H:i', $next));
  91  
  92          $now = strtotime('next Tuesday 17:00:00');
  93          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  94          $this->assertEquals('6-00:00', date('w-H:i', $next));
  95  
  96          $now = strtotime('next Wednesday 17:00:00');
  97          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
  98          $this->assertEquals('6-00:00', date('w-H:i', $next));
  99  
 100          $now = strtotime('next Thursday 17:00:00');
 101          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 102          $this->assertEquals('6-00:00', date('w-H:i', $next));
 103  
 104          $now = strtotime('next Friday 17:00:00');
 105          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 106          $this->assertEquals('6-00:00', date('w-H:i', $next));
 107  
 108          $now = strtotime('next Saturday 17:00:00');
 109          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 110          $this->assertEquals('0-00:00', date('w-H:i', $next));
 111  
 112          $now = strtotime('next Sunday 17:00:00');
 113          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 114          $this->assertEquals('6-00:00', date('w-H:i', $next));
 115  
 116          // Every Sun at 4am.
 117          set_config('backup_auto_weekdays', '1000000', 'backup');
 118          set_config('backup_auto_hour', '4', 'backup');
 119          set_config('backup_auto_minute', '0', 'backup');
 120          $timezone = 99;
 121  
 122          $now = strtotime('next Monday 17:00:00');
 123          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 124          $this->assertEquals('0-04:00', date('w-H:i', $next));
 125  
 126          $now = strtotime('next Tuesday 17:00:00');
 127          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 128          $this->assertEquals('0-04:00', date('w-H:i', $next));
 129  
 130          $now = strtotime('next Wednesday 17:00:00');
 131          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 132          $this->assertEquals('0-04:00', date('w-H:i', $next));
 133  
 134          $now = strtotime('next Thursday 17:00:00');
 135          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 136          $this->assertEquals('0-04:00', date('w-H:i', $next));
 137  
 138          $now = strtotime('next Friday 17:00:00');
 139          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 140          $this->assertEquals('0-04:00', date('w-H:i', $next));
 141  
 142          $now = strtotime('next Saturday 17:00:00');
 143          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 144          $this->assertEquals('0-04:00', date('w-H:i', $next));
 145  
 146          $now = strtotime('next Sunday 17:00:00');
 147          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 148          $this->assertEquals('0-04:00', date('w-H:i', $next));
 149  
 150          // Every day but Wed at 8:30pm.
 151          set_config('backup_auto_weekdays', '1110111', 'backup');
 152          set_config('backup_auto_hour', '20', 'backup');
 153          set_config('backup_auto_minute', '30', 'backup');
 154          $timezone = 99;
 155  
 156          $now = strtotime('next Monday 17:00:00');
 157          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 158          $this->assertEquals('1-20:30', date('w-H:i', $next));
 159  
 160          $now = strtotime('next Tuesday 17:00:00');
 161          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 162          $this->assertEquals('2-20:30', date('w-H:i', $next));
 163  
 164          $now = strtotime('next Wednesday 17:00:00');
 165          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 166          $this->assertEquals('4-20:30', date('w-H:i', $next));
 167  
 168          $now = strtotime('next Thursday 17:00:00');
 169          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 170          $this->assertEquals('4-20:30', date('w-H:i', $next));
 171  
 172          $now = strtotime('next Friday 17:00:00');
 173          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 174          $this->assertEquals('5-20:30', date('w-H:i', $next));
 175  
 176          $now = strtotime('next Saturday 17:00:00');
 177          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 178          $this->assertEquals('6-20:30', date('w-H:i', $next));
 179  
 180          $now = strtotime('next Sunday 17:00:00');
 181          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 182          $this->assertEquals('0-20:30', date('w-H:i', $next));
 183  
 184          // Sun, Tue, Thu, Sat at 12pm.
 185          set_config('backup_auto_weekdays', '1010101', 'backup');
 186          set_config('backup_auto_hour', '0', 'backup');
 187          set_config('backup_auto_minute', '0', 'backup');
 188          $timezone = 99;
 189  
 190          $now = strtotime('next Monday 13:00:00');
 191          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 192          $this->assertEquals('2-00:00', date('w-H:i', $next));
 193  
 194          $now = strtotime('next Tuesday 13:00:00');
 195          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 196          $this->assertEquals('4-00:00', date('w-H:i', $next));
 197  
 198          $now = strtotime('next Wednesday 13:00:00');
 199          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 200          $this->assertEquals('4-00:00', date('w-H:i', $next));
 201  
 202          $now = strtotime('next Thursday 13:00:00');
 203          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 204          $this->assertEquals('6-00:00', date('w-H:i', $next));
 205  
 206          $now = strtotime('next Friday 13:00:00');
 207          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 208          $this->assertEquals('6-00:00', date('w-H:i', $next));
 209  
 210          $now = strtotime('next Saturday 13:00:00');
 211          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 212          $this->assertEquals('0-00:00', date('w-H:i', $next));
 213  
 214          $now = strtotime('next Sunday 13:00:00');
 215          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 216          $this->assertEquals('2-00:00', date('w-H:i', $next));
 217  
 218          // None.
 219          set_config('backup_auto_weekdays', '0000000', 'backup');
 220          set_config('backup_auto_hour', '15', 'backup');
 221          set_config('backup_auto_minute', '30', 'backup');
 222          $timezone = 99;
 223  
 224          $now = strtotime('next Sunday 13:00:00');
 225          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 226          $this->assertEquals('0', $next);
 227  
 228          // Playing with timezones.
 229          set_config('backup_auto_weekdays', '1111111', 'backup');
 230          set_config('backup_auto_hour', '20', 'backup');
 231          set_config('backup_auto_minute', '00', 'backup');
 232  
 233          $timezone = 99;
 234          date_default_timezone_set('Australia/Perth');
 235          $now = strtotime('18:00:00');
 236          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 237          $this->assertEquals(date('w-20:00'), date('w-H:i', $next));
 238  
 239          $timezone = 99;
 240          date_default_timezone_set('Europe/Brussels');
 241          $now = strtotime('18:00:00');
 242          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 243          $this->assertEquals(date('w-20:00'), date('w-H:i', $next));
 244  
 245          $timezone = 99;
 246          date_default_timezone_set('America/New_York');
 247          $now = strtotime('18:00:00');
 248          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 249          $this->assertEquals(date('w-20:00'), date('w-H:i', $next));
 250  
 251          // Viva Australia! (UTC+8).
 252          date_default_timezone_set('Australia/Perth');
 253          $now = strtotime('18:00:00');
 254  
 255          $timezone = -10.0; // 12am for the user.
 256          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 257          $this->assertEquals(date('w-14:00', strtotime('tomorrow')), date('w-H:i', $next));
 258  
 259          $timezone = -5.0; // 5am for the user.
 260          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 261          $this->assertEquals(date('w-09:00', strtotime('tomorrow')), date('w-H:i', $next));
 262  
 263          $timezone = 0.0;  // 10am for the user.
 264          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 265          $this->assertEquals(date('w-04:00', strtotime('tomorrow')), date('w-H:i', $next));
 266  
 267          $timezone = 3.0; // 1pm for the user.
 268          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 269          $this->assertEquals(date('w-01:00', strtotime('tomorrow')), date('w-H:i', $next));
 270  
 271          $timezone = 8.0; // 6pm for the user (same than the server).
 272          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 273          $this->assertEquals(date('w-20:00'), date('w-H:i', $next));
 274  
 275          $timezone = 9.0; // 7pm for the user.
 276          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 277          $this->assertEquals(date('w-19:00'), date('w-H:i', $next));
 278  
 279          $timezone = 13.0; // 12am for the user.
 280          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 281          $this->assertEquals(date('w-15:00', strtotime('tomorrow')), date('w-H:i', $next));
 282  
 283          // Let's have a Belgian beer! (UTC+1 / UTC+2 DST).
 284          // Warning: Some of these tests will fail if executed "around"
 285          // 'Europe/Brussels' DST changes (last Sunday in March and
 286          // last Sunday in October right now - 2012). Once Moodle
 287          // moves to PHP TZ support this could be fixed properly.
 288          date_default_timezone_set('Europe/Brussels');
 289          $now = strtotime('18:00:00');
 290          $dst = date('I', $now);
 291  
 292          $timezone = -10.0; // 7am for the user.
 293          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 294          $expected = !$dst ? date('w-07:00', strtotime('tomorrow')) : date('w-08:00', strtotime('tomorrow'));
 295          $this->assertEquals($expected, date('w-H:i', $next));
 296  
 297          $timezone = -5.0; // 12pm for the user.
 298          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 299          $expected = !$dst ? date('w-02:00', strtotime('tomorrow')) : date('w-03:00', strtotime('tomorrow'));
 300          $this->assertEquals($expected, date('w-H:i', $next));
 301  
 302          $timezone = 0.0;  // 5pm for the user.
 303          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 304          $expected = !$dst ? date('w-21:00') : date('w-22:00');
 305          $this->assertEquals($expected, date('w-H:i', $next));
 306  
 307          $timezone = 3.0; // 8pm for the user (note the expected time is today while in DST).
 308          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 309          $expected = !$dst ? date('w-18:00', strtotime('tomorrow')) : date('w-19:00');
 310          $this->assertEquals($expected, date('w-H:i', $next));
 311  
 312          $timezone = 8.0; // 1am for the user.
 313          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 314          $expected = !$dst ? date('w-13:00', strtotime('tomorrow')) : date('w-14:00', strtotime('tomorrow'));
 315          $this->assertEquals($expected, date('w-H:i', $next));
 316  
 317          $timezone = 9.0; // 2am for the user.
 318          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 319          $expected = !$dst ? date('w-12:00', strtotime('tomorrow')) : date('w-13:00', strtotime('tomorrow'));
 320          $this->assertEquals($expected, date('w-H:i', $next));
 321  
 322          $timezone = 13.0; // 6am for the user.
 323          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 324          $expected = !$dst ? date('w-08:00', strtotime('tomorrow')) : date('w-09:00', strtotime('tomorrow'));
 325          $this->assertEquals($expected, date('w-H:i', $next));
 326  
 327          // The big apple! (UTC-5 / UTC-4 DST).
 328          // Warning: Some of these tests will fail if executed "around"
 329          // 'America/New_York' DST changes (2nd Sunday in March and
 330          // 1st Sunday in November right now - 2012). Once Moodle
 331          // moves to PHP TZ support this could be fixed properly.
 332          date_default_timezone_set('America/New_York');
 333          $now = strtotime('18:00:00');
 334          $dst = date('I', $now);
 335  
 336          $timezone = -10.0; // 1pm for the user.
 337          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 338          $expected = !$dst ? date('w-01:00', strtotime('tomorrow')) : date('w-02:00', strtotime('tomorrow'));
 339          $this->assertEquals($expected, date('w-H:i', $next));
 340  
 341          $timezone = -5.0; // 6pm for the user (server time).
 342          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 343          $expected = !$dst ? date('w-20:00') : date('w-21:00');
 344          $this->assertEquals($expected, date('w-H:i', $next));
 345  
 346          $timezone = 0.0;  // 11pm for the user.
 347          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 348          $expected = !$dst ? date('w-15:00', strtotime('tomorrow')) : date('w-16:00', strtotime('tomorrow'));
 349          $this->assertEquals($expected, date('w-H:i', $next));
 350  
 351          $timezone = 3.0; // 2am for the user.
 352          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 353          $expected = !$dst ? date('w-12:00', strtotime('tomorrow')) : date('w-13:00', strtotime('tomorrow'));
 354          $this->assertEquals($expected, date('w-H:i', $next));
 355  
 356          $timezone = 8.0; // 7am for the user.
 357          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 358          $expected = !$dst ? date('w-07:00', strtotime('tomorrow')) : date('w-08:00', strtotime('tomorrow'));
 359          $this->assertEquals($expected, date('w-H:i', $next));
 360  
 361          $timezone = 9.0; // 8am for the user.
 362          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 363          $expected = !$dst ? date('w-06:00', strtotime('tomorrow')) : date('w-07:00', strtotime('tomorrow'));
 364          $this->assertEquals($expected, date('w-H:i', $next));
 365  
 366          $timezone = 13.0; // 6am for the user.
 367          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 368          $expected = !$dst ? date('w-02:00', strtotime('tomorrow')) : date('w-03:00', strtotime('tomorrow'));
 369          $this->assertEquals($expected, date('w-H:i', $next));
 370  
 371          // Some more timezone tests
 372          set_config('backup_auto_weekdays', '0100001', 'backup');
 373          set_config('backup_auto_hour', '20', 'backup');
 374          set_config('backup_auto_minute', '00', 'backup');
 375  
 376          // Note: These tests should not fail because they are "unnafected"
 377          // by DST changes, as far as execution always happens on Monday and
 378          // Saturday and those week days are not, right now, the ones rulez
 379          // to peform the DST changes (Sunday is). This may change if rules
 380          // are modified in the future.
 381          date_default_timezone_set('Europe/Brussels');
 382          $now = strtotime('next Monday 18:00:00');
 383          $dst = date('I', $now);
 384  
 385          $timezone = -12.0;  // 1pm for the user.
 386          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 387          $expected = !$dst ? '2-09:00' : '2-10:00';
 388          $this->assertEquals($expected, date('w-H:i', $next));
 389  
 390          $timezone = -4.0;  // 1pm for the user.
 391          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 392          $expected = !$dst ? '2-01:00' : '2-02:00';
 393          $this->assertEquals($expected, date('w-H:i', $next));
 394  
 395          $timezone = 0.0;  // 5pm for the user.
 396          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 397          $expected = !$dst ? '1-21:00' : '1-22:00';
 398          $this->assertEquals($expected, date('w-H:i', $next));
 399  
 400          $timezone = 2.0;  // 7pm for the user.
 401          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 402          $expected = !$dst ? '1-19:00' : '1-20:00';
 403          $this->assertEquals($expected, date('w-H:i', $next));
 404  
 405          $timezone = 4.0;  // 9pm for the user.
 406          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 407          $expected = !$dst ? '6-17:00' : '6-18:00';
 408          $this->assertEquals($expected, date('w-H:i', $next));
 409  
 410          $timezone = 12.0;  // 6am for the user.
 411          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 412          $expected = !$dst ? '6-09:00' : '6-10:00';
 413          $this->assertEquals($expected, date('w-H:i', $next));
 414  
 415          // Some more timezone tests
 416          set_config('backup_auto_weekdays', '0100001', 'backup');
 417          set_config('backup_auto_hour', '02', 'backup');
 418          set_config('backup_auto_minute', '00', 'backup');
 419  
 420          // Note: These tests should not fail because they are "unnafected"
 421          // by DST changes, as far as execution always happens on Monday and
 422          // Saturday and those week days are not, right now, the ones rulez
 423          // to peform the DST changes (Sunday is). This may change if rules
 424          // are modified in the future.
 425          date_default_timezone_set('America/New_York');
 426          $now = strtotime('next Monday 04:00:00');
 427          $dst = date('I', $now);
 428  
 429          $timezone = -12.0;  // 8pm for the user.
 430          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 431          $expected = !$dst ? '1-09:00' : '1-10:00';
 432          $this->assertEquals($expected, date('w-H:i', $next));
 433  
 434          $timezone = -4.0;  // 4am for the user.
 435          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 436          $expected = !$dst ? '6-01:00' : '6-02:00';
 437          $this->assertEquals($expected, date('w-H:i', $next));
 438  
 439          $timezone = 0.0;  // 8am for the user.
 440          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 441          $expected = !$dst ? '5-21:00' : '5-22:00';
 442          $this->assertEquals($expected, date('w-H:i', $next));
 443  
 444          $timezone = 2.0;  // 10am for the user.
 445          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 446          $expected = !$dst ? '5-19:00' : '5-20:00';
 447          $this->assertEquals($expected, date('w-H:i', $next));
 448  
 449          $timezone = 4.0;  // 12pm for the user.
 450          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 451          $expected = !$dst ? '5-17:00' : '5-18:00';
 452          $this->assertEquals($expected, date('w-H:i', $next));
 453  
 454          $timezone = 12.0;  // 8pm for the user.
 455          $next = backup_cron_automated_helper::calculate_next_automated_backup($timezone, $now);
 456          $expected = !$dst ? '5-09:00' : '5-10:00';
 457          $this->assertEquals($expected, date('w-H:i', $next));
 458  
 459      }
 460  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1