Преглед изворни кода

Testing the dayname (at least the current) in basicDay and agendaDay views

David Asabina пре 11 година
родитељ
комит
dfe3fc72b1
1 измењених фајлова са 134 додато и 0 уклоњено
  1. 134 0
      tests/automated/dayNames.js

+ 134 - 0
tests/automated/dayNames.js

@@ -0,0 +1,134 @@
+// TODO: fix dates in moment
+describe('day names', function() {
+  var settings = {};
+  var dayClasses = [
+    '.fc-sun',
+    '.fc-mon',
+    '.fc-tue',
+    '.fc-wed',
+    '.fc-thu',
+    '.fc-fri',
+    '.fc-sat',
+  ];
+
+  beforeEach(function() {
+    affix('#cal');
+    settings = { }
+  });
+
+  describe('when view is basicDay', function() {
+    beforeEach(function() {
+      moment.lang();
+      settings.defaultView = 'basicDay';
+    });
+
+    describe('when lang is default', function() {
+      beforeEach(function() {
+        settings.lang = 'en';
+      });
+
+      it('should be in the default language and order', function() {
+        $('#cal').fullCalendar(settings);
+        var weekdays = moment.weekdays();
+
+        $('.fc-day-header').each(function(index, item) {
+          expect(item).toHaveText(weekdays[moment().weekday()]);
+        });
+      });
+    });
+  
+    describe('when lang is not default', function() {
+
+      var languages = [ 'es', 'fr', 'de', 'zh-cn', 'es' ];
+  
+      $.each(languages, function(index, language) {
+        it('should be in the selected language and corresponding order', function() {
+          settings.lang = language;
+          $('#cal').fullCalendar(settings);
+  
+          moment.lang(language);
+          var dow = moment.langData(language)._week.dow
+          var weekdays = moment.weekdays();
+  
+          $('.fc-day-header').each(function(index, item) {
+            expect(item).toContainText(weekdays[(moment().weekday() + dow) % 7]);
+          });
+        });
+      });
+    });
+
+    describe('when daynames are specified', function() {
+      it('should contain the specified names in the given order', function() {
+        var days = [
+          'Hovjaj', 'maSjaj', 'veSjaj', 'mechjaj', 'jevjaj', 'parmaqjaj', 'HoSjaj'
+        ];
+
+        moment.lang('en'); // TODO: figure out why 'en' is explicitely needed to get dow set
+        settings.dayNames = days;
+
+        $('#cal').fullCalendar(settings);
+
+        $('.fc-day-header').each(function(index, item) {
+          expect(item).toContainText(days[moment().weekday()]);
+        });
+      });
+    });
+  });
+
+  describe('when view is agendaDay', function() {
+    beforeEach(function() {
+      settings.defaultView = 'agendaDay';
+    });
+
+    describe('when lang is default', function() {
+      beforeEach(function() {
+        moment.lang('en');
+      });
+
+      it('should contain the proper dayname', function() {
+        $('#cal').fullCalendar(settings);
+
+        var currentWeekday = moment.weekdays()[moment().weekday()];
+        var itemClasses = '.fc-col0.fc-widget-header';
+        expect($(itemClasses)[0]).toContainText(currentWeekday);
+      });
+    });
+
+    describe('when lang is not default', function() {
+      it('should contain the dayname in the selected lang', function() {
+        var language = 'es';
+        settings.lang = language;
+        moment.lang(language);
+
+        $('#cal').fullCalendar(settings);
+
+        var dow = moment.langData(language)._week.dow
+        console.log('dow is ' + dow);
+
+        var currentWeekday = moment.weekdays()[(moment().weekday() + dow) % 7];
+        var dayClasses = '.fc-col0.fc-widget-header';
+
+        console.log('today is ' + currentWeekday + ' UI:' + $(dayClasses)[0].innerHTML);
+        expect($(dayClasses)[0]).toContainText(currentWeekday);
+      });
+    });
+
+    describe('when daynames are specified', function() {
+      it('should contain the specified names in the given order', function() {
+        
+        var days = [
+          'Hovjaj', 'maSjaj', 'veSjaj', 'mechjaj', 'jevjaj', 'parmaqjaj', 'HoSjaj'
+        ];
+
+        settings.dayNames = days;
+        moment.lang('en'); // TODO: figure out how to reload moment.js defauls
+
+        $('#cal').fullCalendar(settings);
+
+        var currentWeekday = days[moment().weekday()];
+        var dayClasses = '.fc-col0.fc-widget-header';
+        expect($(dayClasses)[0]).toContainText(currentWeekday);
+      });
+    });
+  });
+});