Вход Регистрация
Файл: time/spec/js/MouseEventsSpec.js
Строк: 309
<?php
describe
('Mouse events feature', function() {
  
'use strict';

  var 
$input1,
    
$input2,
    
$input3,
    
$input4,
    
$timepicker1,
    
$timepicker2,
    
$timepicker3,
    
$timepicker4,
    
tp1,
    
tp2,
    
tp3,
    
tp4;

  
beforeEach(function () {
    
loadFixtures('timepicker.html');

    
$input1 = $('#timepicker1');
    
$timepicker1 $input1.timepicker();
    
tp1 $timepicker1.data('timepicker');

    
$input2 = $('#timepicker2');
    
$timepicker2 $input2.timepicker({
      
template'modal',
      
showSecondstrue,
      
minuteStep30,
      
secondStep30,
      
defaultTimefalse
    
});
    
tp2 $timepicker2.data('timepicker');

    
$input3 = $('#timepicker3');
    
$timepicker3 $input3.timepicker({
      
defaultTime'23:15:20',
      
showMeridianfalse,
      
showSecondstrue
    
});
    
tp3 $timepicker3.data('timepicker');

    
$input4 = $('#timepicker4');
    
$timepicker4 $input4.timepicker({
            
minuteStep5,
            
showInputsfalse,
            
showMeridiantrue,
            
template'modal',
            
disableFocustrue
    
});
    
tp4 $timepicker4.data('timepicker');
  });

  
afterEach(function () {
    
$input1.data('timepicker').remove();
    
$input2.data('timepicker').remove();
    
$input3.data('timepicker').remove();
    
$input4.data('timepicker').remove();
    
$input1.remove();
    
$input2.remove();
    
$input3.remove();
    
$input4.remove();
  });

  
it('should be shown and trigger show events on input click', function() {
    var 
showEvents 0;

    
$input1.on('show.timepicker', function() {
      
showEvents++;
    });

    
$input1.parents('div').find('.add-on').trigger('click');

    
expect(tp1.isOpen).toBe(true);
    
expect(showEvents).toBe(1);
  });

  
it('should be hidden and trigger hide events on click outside of widget', function() {
    var 
hideEvents 0,
        
time;
    
$input1.val('11:30 AM');

    
$input1.on('hide.timepicker', function(e) {
      
hideEvents++;

      
time e.time.value;
    });

    
$input1.parents('div').find('.add-on').trigger('click');
    
expect(tp1.isOpen).toBe(true);

    
tp1.$widget.find('.bootstrap-timepicker-hour').trigger('mousedown');
    $(
'body').trigger('mousedown');

    
expect(tp1.isOpen).toBe(false'widget is still open');
    
expect(hideEvents).toBe(1'hide event was not thrown once');
    
expect(time).toBe('11:30 AM');

  });

  
it('should increment hour on button click', function() {
    
tp1.setTime('11:30 AM');
    
tp1.update();

    
tp1.$widget.find('a[data-action="incrementHour"]').trigger('click');

    
expect(tp1.getTime()).toBe('12:30 PM');

    
tp2.$widget.find('a[data-action="incrementHour"]').trigger('click');
    
expect(tp2.getTime()).toBe('01:00:00 AM');
  });

  
it('should decrement hour on button click', function() {
    
tp1.setTime('12:30 PM');
    
tp1.update();

    
tp1.$widget.find('a[data-action="decrementHour"]').trigger('click');

    
expect(tp1.getTime()).toBe('11:30 AM''meridian isnt toggling');

    
tp2.$widget.find('a[data-action="incrementHour"]').trigger('click');
    
tp2.$widget.find('a[data-action="incrementHour"]').trigger('click');
    
tp2.$widget.find('a[data-action="decrementHour"]').trigger('click');
    
expect(tp2.getTime()).toBe('01:00:00 AM');
  });

  
it('should increment minute on button click', function() {
    
tp1.setTime('11:30 AM');
    
tp1.update();
        
tp4.setTime('11:30 AM');
        
tp4.update();

    
tp1.$widget.find('a[data-action="incrementMinute"]').trigger('click');
    
expect(tp1.getTime()).toBe('11:45 AM');

    
tp2.$widget.find('a[data-action="incrementMinute"]').trigger('click');
    
expect(tp2.getTime()).toBe('00:30:00 AM');

        
$input4.trigger('click');
    
tp4.$widget.find('a[data-action="incrementMinute"]').trigger('click');
    
tp4.$widget.find('a[data-action="decrementHour"]').trigger('click');
        
$input4.closest('modal').find('.btn-primary').trigger('click');
    
expect(tp4.getTime()).toBe('10:35 AM');
        
expect($input4.val()).toBe('10:35 AM');
  });

  
it('should decrement minute on button click', function() {
    
tp1.setTime('12:30 PM');
    
tp1.update();
    
tp4.setTime('11:30 AM');
    
tp4.update();

    
tp1.$widget.find('a[data-action="decrementMinute"]').trigger('click');
    
expect(tp1.getTime()).toBe('12:15 PM');

    
tp4.$widget.find('a[data-action="decrementMinute"]').trigger('click');
    
expect(tp4.getTime()).toBe('11:25 AM');
  });

  
it('should be 11:30:00 PM if minute is decremented on empty input', function() {
    
tp2.$widget.find('a[data-action="decrementMinute"]').trigger('click');
    
expect(tp2.getTime()).toBe('11:30:00 PM');
  });

  
it('should increment second on button click', function() {
    
tp2.setTime('11:30:15 AM');
    
tp2.update();

    
tp2.$widget.find('a[data-action="incrementSecond"]').trigger('click');

    
expect(tp2.getTime()).toBe('11:30:30 AM');
  });

  
it('should decrement second on button click', function() {
    
tp2.setTime('12:30:15 PM');
    
tp2.update();

  });

  
it('should be 11:30:00 PM if minute is decremented on empty input', function() {
    
tp2.$widget.find('a[data-action="decrementMinute"]').trigger('click');
    
expect(tp2.getTime()).toBe('11:30:00 PM');
  });

  
it('should increment second on button click', function() {
    
tp2.setTime('11:30:15 AM');
    
tp2.update();

    
tp2.$widget.find('a[data-action="incrementSecond"]').trigger('click');

    
expect(tp2.getTime()).toBe('11:30:30 AM');
  });

  
it('should decrement second on button click', function() {
    
tp2.setTime('12:30:15 PM');
    
tp2.update();

    
tp2.$widget.find('a[data-action="decrementSecond"]').trigger('click');

    
expect(tp2.getTime()).toBe('12:29:45 PM');
  });

  
it('should toggle meridian on button click', function() {
    
tp1.setTime('12:30 PM');
    
tp1.update();

    
tp1.$widget.find('a[data-action="toggleMeridian"]').first().trigger('click');
    
expect(tp1.getTime()).toBe('12:30 AM');
    
tp1.$widget.find('a[data-action="toggleMeridian"]').last().trigger('click');
    
expect(tp1.getTime()).toBe('12:30 PM');
  });


  
it('should trigger changeTime event if time is changed', function() {
    var 
eventCount 0,
        
time;

    
$input1.timepicker().on('changeTime.timepicker', function(e) {
      
eventCount++;
      
time e.time.value;
    });

    
tp1.setTime('11:30 AM');

    
expect(eventCount).toBe(1);
    
expect(time).toBe('11:30 AM');

    
tp1.$widget.find('a[data-action="incrementHour"]').trigger('click');

    
expect(eventCount).toBe(2);
    
expect(tp1.getTime()).toBe('12:30 PM');
    
expect(time).toBe('12:30 PM');

    
tp1.$widget.find('a[data-action="incrementMinute"]').trigger('click');

    
expect(eventCount).toBe(3);
    
expect(tp1.getTime()).toBe('12:45 PM');
  });

  
it('should highlight widget inputs on click', function() {
      
//TODO;
      //tp1.setTime('11:55 AM');
      //tp1.update();

      //$input1.parents('.bootstrap-timepicker').find('.add-on').trigger('click');
      //expect(tp1.isOpen).toBe(true);
      //expect(tp1.$widget.find('.bootstrap-timepicker-hour').val()).toBe('11');
      //tp1.$widget.find('.bootstrap-timepicker-hour').trigger('click');
      //var hour1 = window.getSelection().toString();
////var range = window.getSelection().getRangeAt(0);
////var hour1 = range.extractContents();

      //expect(hour1).toBe('11', 'hour input not being highlighted');

      //tp1.$widget.find('.bootstrap-timepicker-minute').trigger('click');
      //var minute1 = window.getSelection().toString();
      //expect(minute1).toBe('55', 'minute input not being highlighted');

      //tp1.$widget.find('.bootstrap-timepicker-meridian').trigger('click');
      //var meridian1 = window.getSelection().toString();
      //expect(meridian1).toBe('AM', 'meridian input not being highlighted');
  
});
});
?>
Онлайн: 0
Реклама