| | |
| | | /* |
| | | * Setup |
| | | */ |
| | | |
| | | // Create the dom before requiring react |
| | | var DOM = require( './testdom'); |
| | | var DOM = require('./testDOM'); |
| | | DOM(); |
| | | |
| | | // Needs to be global to work in Travis CI |
| | |
| | | moment = require('moment'), |
| | | TestUtils = require('react-addons-test-utils') |
| | | ; |
| | | |
| | | /* |
| | | * Utility Functions |
| | | */ |
| | | |
| | | var createDatetime = function( props ) { |
| | | document.body.innerHTML = '<div id="root"></div>'; |
| | |
| | | strDateUTC = mDateUTC.format('L') + ' ' + mDateUTC.format('LT'), |
| | | currentYear = new Date().getFullYear() |
| | | ; |
| | | |
| | | /* |
| | | * Tests |
| | | */ |
| | | |
| | | describe( 'Datetime', function() { |
| | | it( 'Create Datetime', function() { |
| | |
| | | }); |
| | | |
| | | it( 'Time pickers depends on the time format', function() { |
| | | createDatetime({ viewMode: 'time', timeFormat: "HH:mm:ss:SSS"}); |
| | | createDatetime({ viewMode: 'time', timeFormat: 'HH:mm:ss:SSS'}); |
| | | assert.equal( document.querySelectorAll('.rdtCounter').length, 4 ); |
| | | |
| | | createDatetime({ viewMode: 'time', timeFormat: "HH:mm:ss"}); |
| | | createDatetime({ viewMode: 'time', timeFormat: 'HH:mm:ss'}); |
| | | assert.equal( document.querySelectorAll('.rdtCounter').length, 3 ); |
| | | |
| | | createDatetime({ viewMode: 'time', timeFormat: "HH:mm"}); |
| | | createDatetime({ viewMode: 'time', timeFormat: 'HH:mm'}); |
| | | assert.equal( document.querySelectorAll('.rdtCounter').length, 2 ); |
| | | |
| | | createDatetime({ viewMode: 'time', timeFormat: "HH"}); |
| | | createDatetime({ viewMode: 'time', timeFormat: 'HH'}); |
| | | assert.equal( document.querySelectorAll('.rdtCounter').length, 1 ); |
| | | }); |
| | | |
| | |
| | | |
| | | ev.click( dt.month(1) ); |
| | | assert.equal( dt.view().className, 'rdtDays' ); |
| | | assert.equal( dt.switcher().getAttribute('data-value'), "1" ); |
| | | assert.equal( dt.switcher().getAttribute('data-value'), '1' ); |
| | | }); |
| | | |
| | | it( 'increase year', function() { |
| | |
| | | assert.equal( dt.isOpen(), true ); |
| | | }); |
| | | |
| | | it( 'onSelect', function( done ) { |
| | | it( 'onChange', function( done ) { |
| | | createDatetime({ defaultValue: date, onChange: function( selected ) { |
| | | assert.equal( selected.date(), 2 ); |
| | | assert.equal( selected.month(), mDate.month() ); |
| | |
| | | ev.click( dt.day( 2 ) ); |
| | | }); |
| | | |
| | | it( 'multiple onSelect', function( done ) { |
| | | it( 'multiple onChange', function( done ) { |
| | | var i = 0; |
| | | createDatetime({ defaultValue: date, onChange: function( selected ) { |
| | | i++; |
| | |
| | | }); |
| | | |
| | | it( 'onBlur', function() { |
| | | let onBlurCalled = false; |
| | | createDatetime({ value: date, onBlur: function( selected ) { |
| | | // TODO: This is never called |
| | | onBlurCalled = true; |
| | | assert.equal( true, false ); // Just to prove that this code is not being run |
| | | assert.equal( dt.dt().className.indexOf( 'rdtOpen' ), -1 ); |
| | | assert.equal( selected.date(), mDate.date() ); |
| | | assert.equal( selected.month(), mDate.month() ); |
| | |
| | | |
| | | assert.equal( dt.isOpen(), false ); |
| | | ev.focus( dt.input() ); |
| | | assert.equal(dt.isOpen(), true ); |
| | | assert.equal( dt.isOpen(), true ); |
| | | trigger( 'click', document.body ); |
| | | // assert.equal( onBlurCalled, true ); |
| | | }); |
| | | |
| | | it( 'closeOnTab:true', function() { |
| | |
| | | assert.equal( dt.isOpen(), false ); |
| | | ev.focus( dt.input() ); |
| | | assert.equal(dt.isOpen(), true ); |
| | | TestUtils.Simulate.keyDown(dt.input(), {key: "Tab", keyCode: 9, which: 9}); |
| | | TestUtils.Simulate.keyDown(dt.input(), {key: 'Tab', keyCode: 9, which: 9}); |
| | | assert.equal( dt.isOpen(), false ); |
| | | trigger( 'click', document.body ); |
| | | // trigger( 'click', document.body ); // Does nothing ?? |
| | | }); |
| | | |
| | | it( 'closeOnTab:false', function() { |
| | |
| | | assert.equal( dt.isOpen(), false ); |
| | | ev.focus( dt.input() ); |
| | | assert.equal(dt.isOpen(), true ); |
| | | TestUtils.Simulate.keyDown(dt.input(), {key: "Tab", keyCode: 9, which: 9}); |
| | | TestUtils.Simulate.keyDown(dt.input(), {key: 'Tab', keyCode: 9, which: 9}); |
| | | assert.equal(dt.isOpen(), true ); |
| | | trigger( 'click', document.body ); |
| | | // trigger( 'click', document.body ); // Does nothing ?? |
| | | }); |
| | | |
| | | it( 'increase time', function( done ) { |
| | | var i = 0; |
| | | createDatetime({ timeFormat: "HH:mm:ss:SSS", viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | createDatetime({ timeFormat: 'HH:mm:ss:SSS', viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | i++; |
| | | if( i > 2 ) { |
| | | assert.equal( selected.hour(), 3 ); |
| | |
| | | |
| | | it( 'decrease time', function( done ) { |
| | | var i = 0; |
| | | createDatetime({ timeFormat: "HH:mm:ss:SSS", viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | createDatetime({ timeFormat: 'HH:mm:ss:SSS', viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | i++; |
| | | if( i > 2 ) { |
| | | assert.equal( selected.hour(), 1 ); |
| | |
| | | }); |
| | | |
| | | it( 'long increase time', function( done ) { |
| | | createDatetime({ timeFormat: "HH:mm:ss:SSS", viewMode: 'time', defaultValue: date}); |
| | | createDatetime({ timeFormat: 'HH:mm:ss:SSS', viewMode: 'time', defaultValue: date}); |
| | | |
| | | trigger( 'mousedown', dt.timeUp( 0 ) ); |
| | | setTimeout( function() { |
| | |
| | | }); |
| | | |
| | | it( 'long decrease time', function( done ) { |
| | | createDatetime({ timeFormat: "HH:mm:ss:SSS", viewMode: 'time', defaultValue: date}); |
| | | createDatetime({ timeFormat: 'HH:mm:ss:SSS', viewMode: 'time', defaultValue: date}); |
| | | |
| | | trigger( 'mousedown', dt.timeDown( 0 ) ); |
| | | setTimeout( function() { |
| | |
| | | |
| | | it( 'increase time with timeConstraints', function( done ) { |
| | | var i = 0; |
| | | createDatetime({ timeFormat: "HH:mm:ss:SSS", viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | createDatetime({ timeFormat: 'HH:mm:ss:SSS', viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | i++; |
| | | if( i > 2 ) { |
| | | assert.equal( selected.minute(), 17 ); |
| | |
| | | }); |
| | | |
| | | it( 'decrease time with timeConstraints', function( done ) { |
| | | createDatetime({ timeFormat: "HH:mm:ss:SSS", viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | createDatetime({ timeFormat: 'HH:mm:ss:SSS', viewMode: 'time', defaultValue: date, onChange: function( selected ) { |
| | | assert.equal( selected.minute(), 47 ); |
| | | done(); |
| | | }, timeConstraints: { minutes: { step: 15 }}}); |