diff options
author | ludovic <ludovic.pelle@gmail.com> | 2011-04-22 14:49:40 +0200 |
---|---|---|
committer | ludovic <ludovic.pelle@gmail.com> | 2011-04-22 14:49:40 +0200 |
commit | 71981a955e4feb257c8c5a181fcea129008e1d20 (patch) | |
tree | 5ae5d4a2142dc41039375e1ebd0d63aa1efad7dd /test/tests.js | |
parent | e813364b5b73d574d89a7306ec372a5ea990b766 (diff) | |
download | jquery-week-calendar-71981a955e4feb257c8c5a181fcea129008e1d20.zip jquery-week-calendar-71981a955e4feb257c8c5a181fcea129008e1d20.tar.gz jquery-week-calendar-71981a955e4feb257c8c5a181fcea129008e1d20.tar.bz2 |
test for #49
Diffstat (limited to 'test/tests.js')
-rw-r--r-- | test/tests.js | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/test/tests.js b/test/tests.js index 5bd99db..dd3f97e 100644 --- a/test/tests.js +++ b/test/tests.js @@ -274,3 +274,140 @@ test("issue # 60: eventHeader doesn't take care of use24Hour option", function() //check for title when }); +//Test date Last|First Day|Milli OfWeek() +test("issue #49: wrong calculation of DateLastMilliOfWeek", function() { + var $calendar = $('#calendar'); + $calendar.weekCalendar({ + date: new Date(), + daysToShow: 7, + firstDayOfWeek: 1, + startOnFirstDayOfWeek: true + }); + + var TZ = formatTimeZone(); + + expect(30); + + var _events = [{ + 'id': 1, + 'start': '2009-05-10T13:15:00' + TZ, + 'end': '2009-05-10T14:15:00' + TZ, + 'title': 'Lunch with Mike'}, { + 'id': 1, + 'start': '2009-05-10T10:15:00' + TZ, + 'end': '2009-05-10T12:15:00' + TZ, + 'title': 'Lunch with Mike'} + ]; + + var _privateInstance = $calendar.data('weekCalendar'); + ok($.isFunction(_privateInstance._dateLastDayOfWeek), 'check _dateLastDayOfWeek is a function'); + ok($.isFunction(_privateInstance._dateFirstDayOfWeek), 'check _dateFirstDayOfWeek is a function'); + ok($.isFunction(_privateInstance._dateLastMilliOfWeek), 'check _dateLastMilliOfWeek is a function'); + + // create a closure to ease testing + var _dateLastDayOfWeek = function(){return _privateInstance._dateLastDayOfWeek.apply(_privateInstance, arguments);}; + var _dateFirstDayOfWeek = function(){return _privateInstance._dateFirstDayOfWeek.apply(_privateInstance, arguments);}; + var _dateLastMilliOfWeek = function(){return _privateInstance._dateLastMilliOfWeek.apply(_privateInstance, arguments);}; + var _curDate, date; + + _curDate = _dateFirstDayOfWeek(new Date()); + ok(_curDate instanceof Date, '_dateFirstDayOfWeek returns a date'); + equals(_curDate.toString(), (new Date('Apr 18 2011')).toString(), '_dateFirstDayOfWeek returns monday'); + + _curDate = _dateLastDayOfWeek(new Date()); + ok(_curDate instanceof Date, '_dateLastDayOfWeek returns a date'); + equals(_curDate.toString(), (new Date('Apr 24 2011')).toString(), '_dateLastDayOfWeek returns sunday'); + + _curDate = _dateLastMilliOfWeek(new Date()); + ok(_curDate instanceof Date, '_dateLastMilliOfWeek returns a date'); + equals(_curDate.toString(), (new Date('Apr 25 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next monday midnight'); + + //change firstDayOvWeek to sunday + $calendar.weekCalendar('option', 'firstDayOfWeek', 0); + + //Middle of month + _curDate = _dateFirstDayOfWeek(new Date()); + equals(_curDate.toString(), (new Date('Apr 17 2011')).toString(), '_dateFirstDayOfWeek returns sunday'); + + _curDate = _dateLastDayOfWeek(new Date()); + equals(_curDate.toString(), (new Date('Apr 23 2011')).toString(), '_dateLastDayOfWeek returns monday'); + + _curDate = _dateLastMilliOfWeek(new Date()); + equals(_curDate.toString(), (new Date('Apr 24 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next sunday midnight'); + + // case date for start of mont + _curDate = _dateFirstDayOfWeek(new Date('Apr 01 2011')); + equals(_curDate.toString(), (new Date('Mar 27 2011')).toString(), '_dateFirstDayOfWeek returns sunday 27 Mar'); + + _curDate = _dateLastDayOfWeek(new Date('Apr 01 2011')); + equals(_curDate.toString(), (new Date('Apr 2 2011')).toString(), '_dateLastDayOfWeek returns Sat 2 APr'); + + _curDate = _dateLastMilliOfWeek(new Date('Apr 01 2011')); + equals(_curDate.toString(), (new Date('Apr 03 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next sunday midnight 3 Apr '); + + + //change firstDayOvWeek to monday + $calendar.weekCalendar('option', 'firstDayOfWeek', 1); + + // case date for end of month + _curDate = _dateFirstDayOfWeek(new Date('Apr 30 2011')); + equals(_curDate.toString(), (new Date('Apr 25 2011')).toString(), '_dateFirstDayOfWeek returns monday 25'); + + _curDate = _dateLastDayOfWeek(new Date('Apr 30 2011')); + equals(_curDate.toString(), (new Date('May 01 2011')).toString(), '_dateLastDayOfWeek returns Sun 1'); + + _curDate = _dateLastMilliOfWeek(new Date('Apr 30 2011')); + equals(_curDate.toString(), (new Date('May 02 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next monday midnight 2'); + + //change firstDayOvWeek to sunday + $calendar.weekCalendar('option', 'firstDayOfWeek', 0); + + // case date for end of week + _curDate = _dateFirstDayOfWeek(new Date('Apr 23 2011')); + equals(_curDate.toString(), (new Date('Apr 17 2011')).toString(), '_dateFirstDayOfWeek returns sunday 17'); + + _curDate = _dateLastDayOfWeek(new Date('Apr 23 2011')); + equals(_curDate.toString(), (new Date('Apr 23 2011')).toString(), '_dateLastDayOfWeek returns Saturday 23'); + + _curDate = _dateLastMilliOfWeek(new Date('Apr 23 2011')); + equals(_curDate.toString(), (new Date('Apr 24 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next sunday midnight 24'); + + + // case date in february leap year + _curDate = _dateFirstDayOfWeek(new Date('Mar 01 2000')); + equals(_curDate.toString(), (new Date('Feb 27 2000')).toString(), '_dateFirstDayOfWeek returns sunday 27'); + + _curDate = _dateLastDayOfWeek(new Date('Mar 01 2000')); + equals(_curDate.toString(), (new Date('Mar 04 2000')).toString(), '_dateLastDayOfWeek returns monday 4 '); + + _curDate = _dateLastMilliOfWeek(new Date('Mar 01 2000')); + equals(_curDate.toString(), (new Date('Mar 05 2000 00:00:00')).toString(), '_dateLastMilliOfWeek returns next sunday midnight 5'); + + //change firstDayOvWeek to monday + $calendar.weekCalendar('option', 'firstDayOfWeek', 1); + + // case daylight saving + + date = new Date('Mar 22 2011'); + _curDate = _dateFirstDayOfWeek(date); + equals(_curDate.toString(), (new Date('Mar 21 2011')).toString(), '_dateFirstDayOfWeek returns monday 21'); + + _curDate = _dateLastDayOfWeek(date); + equals(_curDate.toString(), (new Date('Mar 27 2011')).toString(), '_dateLastDayOfWeek returns sunday 27'); + + _curDate = _dateLastMilliOfWeek(date); + equals(_curDate.toString(), (new Date('Mar 28 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next monday midnight 28'); + + + // case daylight saving - + date = new Date('Oct 26 2011'); + _curDate = _dateFirstDayOfWeek(date); + equals(_curDate.toString(), (new Date('Oct 24 2011')).toString(), '_dateFirstDayOfWeek returns monday 24'); + + _curDate = _dateLastDayOfWeek(date); + equals(_curDate.toString(), (new Date('Oct 30 2011')).toString(), '_dateLastDayOfWeek returns sunday 30 '); + + _curDate = _dateLastMilliOfWeek(date); + equals(_curDate.toString(), (new Date('Oct 31 2011 00:00:00')).toString(), '_dateLastMilliOfWeek returns next monday midnight 31'); + + +}); |