Example #1
0
    function selectDateInDatePicker(newDate) {
      var date = DateFormatting.parse(newDate, DateFieldInput.DATE_FORMAT);
      var selectorForDate = '.pika-day' +
        '[data-pika-year="' + date.getFullYear() + '"]' +
        '[data-pika-month="' + date.getMonth() + '"]' +
        '[data-pika-day="' + date.getDate() + '"]';

      var correspondingDate = datePicker.querySelector(selectorForDate);
      correspondingDate.dispatchEvent(new Event('mousedown'));
    }
Example #2
0
    function getDatePickerSelectedDate() {
      var selectedDate = datePicker.querySelector('.is-selected .pika-day');
      assert(selectedDate, 'getDatePickerSelectedDate() expects a selected date in the date picker');

      var year =  selectedDate.getAttribute('data-pika-year');
      var month = selectedDate.getAttribute('data-pika-month');
      var day =   selectedDate.getAttribute('data-pika-day');

      return DateFormatting.format(new Date(year, month, day), DateFieldInput.DATE_FORMAT);
    }
Example #3
0
 assert.throws(function runWithoutTheSecondArgument() {
   DateFormatting.parse('2015-06-07');
 },
Example #4
0
 assert.throws(function runWithEmptyStringAsFirstArgument() {
   DateFormatting.parse('');
 },
Example #5
0
 assert.throws(function runWithoutTheFirstArgument() {
   DateFormatting.parse();
 },
Example #6
0
 before(function() {
   date = DateFormatting.parse('2015-06-07', 'YYYY-MM-DD');
 });
Example #7
0
 assert.throws(function runWithoutTheSecondArgument() {
   DateFormatting.format(date);
 },
Example #8
0
 before(function() {
   date = new Date(2015, 10, 7);
   formattedDate = DateFormatting.format(date, 'DD/MM/YYYY');
 });
Example #9
0
  it('works', function(done) {
    assert.equal(datePickerButton.title, 'Deschide calendarul', 'has the appropriate tool-tip');

    var datePicker = getDatePicker();
    assert.isNull(datePicker, 'date picker is not there before clicking the button');

    datePickerButton.click();
    assert.isNotTrue(bodyClickListener.executed, 'clicks do not propagate to <body>, and don’t hide the picker');

    datePicker = getDatePicker();
    assert.isTrue(datePicker.classList.contains('xo'), 'has the “xo” theme');

    var firstMonth = datePicker.querySelector('.pika-select-month option');
    assert.equal(firstMonth.textContent, 'Ianuarie', 'month names are translated');

    var firstWeekDay = datePicker.querySelector('.pika-table th abbr');
    assert.equal(firstWeekDay.title, 'Luni', 'first day of the wiik is Monday');
    assert.equal(firstWeekDay.textContent, 'Lu', 'short week day names are translated');

    var prevMonthButton = datePicker.querySelector('button.pika-prev');
    assert.equal(prevMonthButton.textContent, 'luna precedentă', 'the button to go to previous month is translated');

    var nextMonthButton = datePicker.querySelector('button.pika-next');
    assert.equal(nextMonthButton.textContent, 'luna următoare', 'the button to go to next month is translated');

    assert.equal(getDatePickerSelectedDate(), domElement.value, 'when opened, date picker reflects input’s value');

    var newDate = nextDay(domElement.value);
    selectDateInDatePicker(newDate);
    assert.equal(getDatePickerSelectedDate(), newDate, 'when selected, it updates input value accordingly');
    assert.equal(dateFieldInput.getValue(), newDate, 'when selected, getValue() returns the new value');

    datePicker = getDatePicker();
    assert.isNull(datePicker, 'hides the date picker when a date is selected');

    domElement.value = '';
    datePickerButton.click();
    datePicker = getDatePicker();
    assert.isNotNull(datePicker, 'date picker is displayed with en empty field value');

    var todayDate = DateFormatting.format(new Date(), DateFieldInput.DATE_FORMAT);
    assert.equal(getDatePickerSelectedDate(), todayDate,
      'when opening the date picker with an empty field, it has today marked');

    datePickerButton.click();
    datePicker = getDatePicker();
    assert.isNull(datePicker, 'hides the date picker when clicked again');

    /* this setTimeout call is required because focus() is called async too */
    window.setTimeout(function() {
      assert.equal(document.activeElement, domElement, 'when the date picker is closed, the input get focus again');

      datePickerButton.click();
      document.body.click();
      datePicker = getDatePicker();
      assert.isNull(datePicker, 'hides the date picker when clicking outside');

      datePickerButton.click();
      simulateEscapeKey();
      datePicker = getDatePicker();
      assert.isNull(datePicker, 'hides the date picker when pressing Escape key');

      done();
    });

    function getDatePicker() {
      return sandbox.querySelector(DateFieldInput.DATE_PICKER_SELECTOR);
    }

    function getDatePickerSelectedDate() {
      var selectedDate = datePicker.querySelector('.is-selected .pika-day');
      assert(selectedDate, 'getDatePickerSelectedDate() expects a selected date in the date picker');

      var year =  selectedDate.getAttribute('data-pika-year');
      var month = selectedDate.getAttribute('data-pika-month');
      var day =   selectedDate.getAttribute('data-pika-day');

      return DateFormatting.format(new Date(year, month, day), DateFieldInput.DATE_FORMAT);
    }

    function nextDay(initialFormattedDate) {
      var initialDate = DateFormatting.parse(initialFormattedDate, DateFieldInput.DATE_FORMAT);
      var nextDate = new Date(initialDate.getFullYear(), initialDate.getMonth(), initialDate.getDate() + 1);

      return DateFormatting.format(nextDate, DateFieldInput.DATE_FORMAT);
    }

    function selectDateInDatePicker(newDate) {
      var date = DateFormatting.parse(newDate, DateFieldInput.DATE_FORMAT);
      var selectorForDate = '.pika-day' +
        '[data-pika-year="' + date.getFullYear() + '"]' +
        '[data-pika-month="' + date.getMonth() + '"]' +
        '[data-pika-day="' + date.getDate() + '"]';

      var correspondingDate = datePicker.querySelector(selectorForDate);
      correspondingDate.dispatchEvent(new Event('mousedown'));
    }
  });
Example #10
0
    function nextDay(initialFormattedDate) {
      var initialDate = DateFormatting.parse(initialFormattedDate, DateFieldInput.DATE_FORMAT);
      var nextDate = new Date(initialDate.getFullYear(), initialDate.getMonth(), initialDate.getDate() + 1);

      return DateFormatting.format(nextDate, DateFieldInput.DATE_FORMAT);
    }