UNPKG

@fooloomanzoo/datetime-input

Version:
139 lines (120 loc) 5.94 kB
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes"> <title>datetime-input test</title> <script src="../../../@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script> <script src="../../../wct-browser-legacy/browser.js"></script> <script type="module" src="../datetime-input.js"></script> </head> <body> <test-fixture id="Basic"> <template> <datetime-input></datetime-input> </template> </test-fixture> <test-fixture id="ChangingProperties"> <template> <datetime-input datetime="1980-02-01T02:03:04.567-07:15" clamp=""></datetime-input> </template> </test-fixture> <test-fixture id="WithTimezone"> <template> <datetime-input with-timezone></datetime-input> </template> </test-fixture> <script type="module"> import { Base } from '@polymer/polymer/polymer-legacy.js'; import { getParams, mixinSuite } from '@fooloomanzoo/input-picker-pattern/utils/wct-mixin-test-helper.js'; const params = getParams(); mixinSuite('datetime-input'); suite('basic', function() { let element; setup(function() { element = fixture('Basic'); }); test('instantiating the element with default properties should work', done => { assert.isUndefined(element.date, 'no date is defined'); assert.isUndefined(element.time, 'no time is defined'); assert.isUndefined(element.datetime, 'no datetime is defined'); assert.isUndefined(element.valueAsNumber, 'no valueAsNumber is defined'); assert.isUndefined(element.valueAsDate, 'no valueAsDate is defined'); assert.isUndefined(element.year, 'no year is defined'); assert.isUndefined(element.month, 'no month is defined'); assert.isUndefined(element.day, 'no day is defined'); assert.isUndefined(element.hour, 'no hour is defined'); assert.isUndefined(element.hour12, 'no hour12 is defined'); assert.isUndefined(element.minute, 'no minute is defined'); assert.isUndefined(element.second, 'no second is defined'); assert.isUndefined(element.millisecond, 'no millisecond is defined'); assert.isUndefined(element.timezone, 'no timezone is defined'); assert.isUndefined(element.offsetMinutes, 'no timezone-offset is defined'); assert.isUndefined(element._timeZoneHours, 'no timezone-hours is defined'); assert.isUndefined(element._timeZoneMinutes, 'no timezone-minutes is defined'); done(); }); test('calling "now" on the element should work', done => { assert.isDefined(element.now, '"now" exists'); element.now(); assert.isDefined(element.date, 'date is defined'); assert.isDefined(element.time, 'time is defined'); assert.isDefined(element.datetime, 'datetime is defined'); assert.isDefined(element.valueAsNumber, 'valueAsNumber is defined'); assert.isDefined(element.valueAsDate, 'valueAsDate is defined'); assert.isDefined(element.year, 'year is defined'); assert.isDefined(element.month, 'month is defined'); assert.isDefined(element.day, 'day is defined'); assert.isDefined(element.hour, 'hour is defined'); assert.isDefined(element.minute, 'minute is defined'); assert.isDefined(element.second, 'second is defined'); assert.isDefined(element.millisecond, 'millisecond is defined'); assert.isDefined(element.timezone, 'timezone is defined'); assert.isDefined(element.offsetMinutes, 'timezone-offset is defined'); assert.isDefined(element._timeZoneHours, 'timezone-hours is defined'); assert.isDefined(element._timeZoneMinutes, 'timezone-minutes is defined'); done(); }); }); suite('setting properties', () => { let element; setup(function() { element = fixture('ChangingProperties'); }); test('setting property should work', done => { assert.equal(element.year, 1980, 'year should be set'); assert.equal(element.month, 2, 'month should be set'); assert.equal(element.day, 1, 'day should be set'); assert.equal(element.hour, 2, 'hour should be set'); assert.equal(element.minute, 3, 'minute should be set'); assert.equal(element.second, 4, 'second should be set'); assert.equal(element.millisecond, 567, 'millisecond should be set'); assert.equal(element.timezone, '-07:15', 'timezone should be set'); assert.equal(element.offsetMinutes, 7*60 + 15, 'timezone-offset should be set'); assert.equal(element._timeZoneHours, -7, 'timezone-hours should be set'); assert.equal(element._timeZoneMinutes, 15, 'timezone-minutes should be set'); assert.equal(element.date, '1980-02-01', 'date should be set'); assert.equal(element.time, '02:03:04.567', 'date should be set'); assert.equal(element.valueAsNumber, 318244684567, 'valueAsNumber should be set'); assert.equal(element.valueAsDate.toISOString(), '1980-02-01T09:18:04.567Z', 'valueAsDate should be set'); done(); }); }); suite('timezone', function() { let element; setup(function() { element = fixture('WithTimezone'); }); test('with timezone', done => { assert.isTrue(element.withTimezone, 'withTimezone is set'); done(); }); }); </script> </body> </html>