App-MFILE-WWW

 view release on metacpan or  search on metacpan

share/js/core/tests/datetime.js  view on Meta::CPAN

//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// 3. Neither the name of SUSE LLC nor the names of its contributors may be
// used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
// *************************************************************************
//
// tests/datetime.js
//
"use strict";

define ([
    'QUnit',
    'datetime',
], function (
    QUnit,
    dt,
) {

    var date_valid = function (assert, d) {
            console.log("Entering date_valid() with argument", d);
            var r = dt.vetDate(d);
            assert.ok(r, "valid: " + d + " -> " + r);
        },
        date_invalid = function (assert, d) {
            console.log("Entering date_invalid() with argument", d);
            var r = dt.vetDate(d);
            assert.strictEqual(r, null, "invalid: " + d);
        },
        time_valid = function (assert, t) {
            console.log("Entering time_valid() with argument", t);
            var r = dt.canonicalizeTime(t);
            assert.ok(r, "valid: " + t + " -> " + r);
        },
        time_invalid = function (assert, t) {
            console.log("Entering time_invalid() with argument", t);
            var r = dt.canonicalizeTime(t);
            assert.strictEqual(r, null, "invalid: " + t);
        },
        timerange_valid = function (assert, tr) {
            console.log("Entering timerange_valid() with argument", tr);
            var r = dt.vetTimeRange(tr);
            assert.ok(r, "valid: " + tr + " -> " + r);
        },
        timerange_invalid = function (assert, tr) {
            console.log("Entering timerange_invalid() with argument", tr);
            var r = dt.vetTimeRange(tr);
            assert.strictEqual(r, null, "invalid: " + tr);
        };

    return function () {

        QUnit.test('intToMonth()', function (assert) {
            assert.strictEqual(dt.intToMonth(0), null);
            assert.strictEqual(dt.intToMonth(0, true), null);
            assert.strictEqual(dt.intToMonth(-1), null);
            assert.strictEqual(dt.intToMonth(-1, true), null);
            assert.strictEqual(dt.intToMonth(13), null);
            assert.strictEqual(dt.intToMonth(13, true), null);
            assert.strictEqual(dt.intToMonth('0'), null);
            assert.strictEqual(dt.intToMonth('0', true), null);
            assert.strictEqual(dt.intToMonth('-1'), null);
            assert.strictEqual(dt.intToMonth('-1', true), null);
            assert.strictEqual(dt.intToMonth('13'), null);
            assert.strictEqual(dt.intToMonth('13', true), null);
            assert.strictEqual(dt.intToMonth(''), null);
            assert.strictEqual(dt.intToMonth('', true), null);
            assert.strictEqual(dt.intToMonth(undefined), null);
            assert.strictEqual(dt.intToMonth(undefined, true), null);
            assert.strictEqual(dt.intToMonth(null), null);
            assert.strictEqual(dt.intToMonth(null, true), null);
            assert.strictEqual(dt.intToMonth(1), 'JAN');
            assert.strictEqual(dt.intToMonth(1, true), 'January');
            assert.strictEqual(dt.intToMonth(2), 'FEB');
            assert.strictEqual(dt.intToMonth(2, true), 'February');
            assert.strictEqual(dt.intToMonth(3), 'MAR');
            assert.strictEqual(dt.intToMonth(3, true), 'March');
            assert.strictEqual(dt.intToMonth(4), 'APR');
            assert.strictEqual(dt.intToMonth(4, true), 'April');
            assert.strictEqual(dt.intToMonth(5), 'MAY');
            assert.strictEqual(dt.intToMonth(5, true), 'May');
            assert.strictEqual(dt.intToMonth(6), 'JUN');
            assert.strictEqual(dt.intToMonth(6, true), 'June');
            assert.strictEqual(dt.intToMonth(7), 'JUL');
            assert.strictEqual(dt.intToMonth(7, true), 'July');
            assert.strictEqual(dt.intToMonth(8), 'AUG');
            assert.strictEqual(dt.intToMonth(8, true), 'August');
            assert.strictEqual(dt.intToMonth(9), 'SEP');
            assert.strictEqual(dt.intToMonth(9, true), 'September');
            assert.strictEqual(dt.intToMonth(10), 'OCT');
            assert.strictEqual(dt.intToMonth(10, true), 'October');
            assert.strictEqual(dt.intToMonth(11), 'NOV');
            assert.strictEqual(dt.intToMonth(11, true), 'November');
            assert.strictEqual(dt.intToMonth(12), 'DEC');
            assert.strictEqual(dt.intToMonth(12, true), 'December');
        });

        QUnit.test('strToMonth()', function (assert) {
            assert.strictEqual(dt.strToMonth(0), null);
            assert.strictEqual(dt.strToMonth(0, true), null);
            assert.strictEqual(dt.strToMonth(-1), null);
            assert.strictEqual(dt.strToMonth(-1, true), null);
            assert.strictEqual(dt.strToMonth(13), null);
            assert.strictEqual(dt.strToMonth(13, true), null);
            assert.strictEqual(dt.strToMonth(''), null);
            assert.strictEqual(dt.strToMonth('', true), null);

share/js/core/tests/datetime.js  view on Meta::CPAN

            date_valid(assert, "15 octopus 2017");
            date_valid(assert, "2017 October 15");
            date_valid(assert, "15 October 2017");
            date_invalid(assert, "15 oct 20177");
            date_invalid(assert, "20177 oct 15");
            date_invalid(assert, "2017 octopus 0");
            date_invalid(assert, "0 octopus 1999");
            date_invalid(assert, "155 oct 2017");
            date_invalid(assert, 'Pi 3.1415927');
            date_valid(assert, '2017-SEP-30ll');
            date_valid(assert, '2017asdf*-SEP-30ll');
            date_valid(assert, '2017***-SEP-30ll');
        });

        QUnit.test('date vetter function: 4+ components', function (assert) {
            date_invalid(assert, "2017 oct 15 b");
            date_invalid(assert, "15 oct 2017 c");
            date_invalid(assert, '-	-  ');
            date_invalid(assert, '.	-  ');
            date_invalid(assert, ' .	/  ');
            date_invalid(assert, '15  -  deception ');
            date_invalid(assert, 'Pi is approximately 3.1415927');
        });

        QUnit.test('canonicalizeTime', function (assert) {
            time_valid(assert, "7:00");
            time_valid(assert, "7:0");
            time_valid(assert, "7:");
            time_valid(assert, "0:00");
            time_valid(assert, "0:0");
            time_valid(assert, ":0");
            time_valid(assert, ":");
            time_valid(assert, "7");
            time_invalid(assert, "foobar");
            time_invalid(assert, "foo:bar");
            time_invalid(assert, "foo:10");
            time_invalid(assert, "10:bar");
            time_invalid(assert, "10:K§Ň");
            time_invalid(assert, "-1:");
            time_invalid(assert, "5:-434");
            time_invalid(assert, "5:-43");
            time_invalid(assert, "5:60");
            time_invalid(assert, "24:60");
            time_invalid(assert, "245:600");
            time_invalid(assert, "25:50");
            time_valid(assert, "02:50");
            time_invalid(assert, "02:60");
            time_valid(assert, "02:03");
            time_valid(assert, "12:00");
            time_valid(assert, "2:1");
            time_valid(assert, "1:2");
            time_valid(assert, "1:9");
            time_valid(assert, "10:10");
            time_invalid(assert, "25:10");
            time_invalid(assert, "10::10");
            time_valid(assert, "10: 10");
            time_valid(assert, "10 :10");
        });

        QUnit.test('time range vetter function', function (assert) {
            timerange_valid(assert, "12:00-12:30");
            timerange_valid(assert, "12:00 -12:30");
            timerange_valid(assert, "12:00 - 12:30");
            timerange_invalid(assert, "12:00 -- 12:30");
            timerange_invalid(assert, "12:60-12:00");
            timerange_invalid(assert, "12:00-12:60");
            timerange_valid(assert, "12:0-12:6");
            timerange_valid(assert, "12:6-12:0");
            timerange_invalid(assert, "12::6-12:0");
            timerange_valid(assert, "8-12");
        });

        QUnit.test('time range vetter function - offset', function (assert) {
            timerange_valid(assert, "8+1");
            timerange_valid(assert, "16+10");
            timerange_valid(assert, "8:00+1");
            timerange_valid(assert, "8:00+1:45");
            timerange_valid(assert, "8:45+1:45");
            timerange_valid(assert, "8:45+1:55");
            timerange_valid(assert, "23:45+0:15");
            timerange_valid(assert, "23:45+0:16");
            timerange_valid(assert, "0+0");
            timerange_valid(assert, "+0:00");
            timerange_valid(assert, "+1:5");
            timerange_valid(assert, "+");
        });

        QUnit.test('is time range after time', function (assert) {
            assert.ok(dt.isTimeRangeAfterTime('08:00-12:00', '07:30'), "08:00 is after 07:30");
            assert.ok(dt.isTimeRangeAfterTime('08:00-12:00', "7:30"), "08:00 is after 7:30");
            assert.ok(dt.isTimeRangeAfterTime('8:00-12:00', "07:30"), "8:00 is after 07:30");
            assert.ok(dt.isTimeRangeAfterTime('8:00-9:0', "7:3"), "8:00 is after 7:3");
            assert.notOk(dt.isTimeRangeAfterTime('8:00-9:00', "8:00"), "8:00 is NOT after 8:00");
            assert.notOk(dt.isTimeRangeAfterTime('8:00-9:00', "8:01"), "8:00 is NOT after 8:01");
            assert.notOk(dt.isTimeRangeAfterTime('8:00-9:00', "9:00"), "8:00 is NOT after 9:00");
        });

        QUnit.test('is time within time range', function (assert) {
            assert.notOk(dt.isTimeWithinTimeRange('07:30', '08:00-12:00'), "07:30 is not within 08:00-12:00");
            assert.notOk(dt.isTimeWithinTimeRange('7:40', '08:00-12:00'), "7:40 is not within 08:00-12:00");
            assert.ok(dt.isTimeWithinTimeRange('8:00', '08:00-12:00'), "8:00 is within 08:00-12:00");
            assert.ok(dt.isTimeWithinTimeRange('8:15', '08:00-12:00'), "8:15 is within 08:00-12:00");
            assert.ok(dt.isTimeWithinTimeRange('8:55', '08:00-12:00'), "8:55 is within 08:00-12:00");
            assert.ok(dt.isTimeWithinTimeRange('9:00', '08:00-12:00'), "9:00 is within 08:00-12:00");
            assert.ok(dt.isTimeWithinTimeRange('10:46', '08:00-12:00'), "10:46 is within 08:00-12:00");
            assert.notOk(dt.isTimeWithinTimeRange('12:00', '08:00-12:00'), "12:00 is not within 08:00-12:00");
            assert.notOk(dt.isTimeWithinTimeRange('12:15', '08:00-12:00'), "12:15 is not within 08:00-12:00");
            assert.notOk(dt.isTimeWithinTimeRange('13:00', '08:00-12:00'), "13:00 is not within 08:00-12:00");
        });

    };

});



( run in 1.167 second using v1.01-cache-2.11-cpan-13bb782fe5a )