!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/wincloud_gateway/node_modules/cron-parser/test/   drwxr-xr-x
Free 12.95 GB of 57.97 GB (22.34%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     timezone.js (11.96 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
var test = require('tap').test;
var CronExpression = require('../lib/expression');

test('It works on DST start', function(t) {
  try {
    var options = {
      currentDate: '2016-03-27 02:00:01',
      tz: 'Europe/Athens'
    };

    var interval, date;

    interval = CronExpression.parse('0 * * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 4, 'Due to DST start in Athens, 3 is skipped');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 5, '5 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    interval = CronExpression.parse('30 2 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 30, '30 Minutes');
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 30, '30 Minutes');
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 28, 'on the 28th');

    interval = CronExpression.parse('0 3 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 4, 'Due to DST start in Athens, 3 is skipped');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 3, '3 on the 28th');
    t.equal(date.getDate(), 28, 'on the 28th');

    interval = CronExpression.parse('*/20 3 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 4, 'Due to DST start in Athens, 3 is skipped');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 20, '20 Minutes');
    t.equal(date.getHours(), 4, 'Due to DST start in Athens, 3 is skipped');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 40, '20 Minutes');
    t.equal(date.getHours(), 4, 'Due to DST start in Athens, 3 is skipped');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 28, 'on the 28th');

    options.currentDate = '2016-03-27 00:00:01';

    interval = CronExpression.parse('0 * 27 * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 1, '1 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 4, '4 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 5, '5 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    options.currentDate = '2016-03-27 00:00:01';
    options.endDate = '2016-03-27 03:00:01';

    interval = CronExpression.parse('0 * * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 1, '1 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0 Minutes');
    t.equal(date.getHours(), 4, '4 AM');
    t.equal(date.getDate(), 27, 'on the 27th');

    // Out of the timespan range
    t.throws(function() {
      date = interval.next();
    });
  } catch (err) {
    t.ifError(err, 'Interval parse error');
  }

  t.end();
});

test('It works on DST end', function(t) {
  try {
    var options = {
      currentDate: '2016-10-30 02:00:01',
      tz: 'Europe/Athens'
    };

    var interval, date;

    interval = CronExpression.parse('0 * * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, 'Due to DST end in Athens (4-->3)');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 4, '4 AM');
    t.equal(date.getDate(), 30, '30th');

    interval = CronExpression.parse('0 3 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 31, '31st');

    interval = CronExpression.parse('*/20 3 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0');
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getMinutes(), 20, '20');
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getMinutes(), 40, '40');
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getMinutes(), 0, '0');
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 31, '31st');

    options.currentDate = '2016-10-30 00:00:01';

    interval = CronExpression.parse('0 * 30 * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 1, '1 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 4, '4 AM');
    t.equal(date.getDate(), 30, '30th');

    options.currentDate = '2016-10-30 00:00:01';
    options.endDate = '2016-10-30 03:00:01';

    interval = CronExpression.parse('0 * * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 1, '1 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    // Out of the timespan range
    t.throws(function() {
      date = interval.next();
    });

    options.endDate = '2016-10-30 04:00:01';

    interval = CronExpression.parse('0 * * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 1, '1 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 2, '2 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 3, '3 AM');
    t.equal(date.getDate(), 30, '30th');

    date = interval.next();
    t.equal(date.getHours(), 4, '4 AM');
    t.equal(date.getDate(), 30, '30th');

    // Out of the timespan range
    t.throws(function() {
      date = interval.next();
    });

    options = {
      currentDate : new Date('Sun Oct 29 2016 01:00:00 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 29, '29th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');

    options = {
      currentDate : new Date('Sun Oct 29 2016 02:59:00 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 29, '29th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');

    options = {
      currentDate : new Date('Sun Oct 29 2016 02:59:59 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 29, '29th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');

    options = {
      currentDate : new Date('Sun Oct 30 2016 01:00:00 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');

    options = {
      currentDate : new Date('Sun Oct 30 2016 01:59:00 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');

    options = {
      currentDate : new Date('Sun Oct 30 2016 01:59:59 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');

    options = {
      currentDate : new Date('Sun Oct 30 2016 02:59:00 GMT+0200')
    };

    interval = CronExpression.parse('0 12 * * *', options);
    t.ok(interval, 'Interval parsed');

    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 30, '30th');
    date = interval.next();
    t.equal(date.getHours(), 12, '12');
    t.equal(date.getDate(), 31, '31st');
  } catch (err) {
    t.ifError(err, 'Interval parse error');
  }

  t.end();
});

test('it will work with #131 issue case', function(t) {
  var options = {
    tz: 'America/Sao_Paulo',
    currentDate : new Date('Sun Oct 30 2018 02:59:00 GMT+0200')
  };

  var interval = CronExpression.parse('0 9 1 1 *', options);
  var date = interval.next();

  t.equal(date.getFullYear(), 2019);
  t.equal(date.getDate(), 1);
  t.equal(date.getMonth(), 0);

  date = interval.prev();
  t.equal(date.getFullYear(), 2018);
  t.equal(date.getDate(), 1);
  t.equal(date.getMonth(), 0);

  date = interval.prev();
  t.equal(date.getFullYear(), 2017);
  t.equal(date.getDate(), 1);
  t.equal(date.getMonth(), 0);

  t.end();
});

test('it will work with #137 issue case', function(t) {
  var options = {
    tz: 'America/New_York',
    currentDate : new Date('10/28/2018')
  };

  var interval = CronExpression.parse('0 12 * * 3', options);
  var date = interval.next();

  t.equal(date.getFullYear(), 2018);
  t.equal(date.getDate(), 31);
  t.equal(date.getMonth(), 9);

  t.end();
});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0047 ]--