Skip to content

Commit 254f2b3

Browse files
committed
Dev: fix the datepicker test suite and jshint everything. Fixes #8804 - Dev: re-enable the datepicker test suite
1 parent 543abc9 commit 254f2b3

File tree

8 files changed

+209
-203
lines changed

8 files changed

+209
-203
lines changed

build/tasks/testswarm.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ var versions = {
1313
"Autocomplete": "autocomplete/autocomplete.html",
1414
"Button": "button/button.html",
1515
"Core": "core/core.html",
16-
//"Datepicker": "datepicker/datepicker.html",
16+
"Datepicker": "datepicker/datepicker.html",
1717
"Dialog": "dialog/dialog.html",
1818
"Draggable": "draggable/draggable.html",
1919
"Droppable": "droppable/droppable.html",

grunt.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -281,13 +281,13 @@ grunt.initConfig({
281281
files: grunt.file.expandFiles( "tests/unit/**/*.html" ).filter(function( file ) {
282282
// disabling everything that doesn't (quite) work with PhantomJS for now
283283
// TODO except for all|index|test, try to include more as we go
284-
return !( /(all|all-active|index|test|dialog|slider|datepicker|tabs|tooltip)\.html$/ ).test( file );
284+
return !( /(all|all-active|index|test|dialog|slider|tabs|tooltip)\.html$/ ).test( file );
285285
})
286286
},
287287
lint: {
288288
ui: grunt.file.expandFiles( "ui/*.js" ).filter(function( file ) {
289289
// TODO remove items from this list once rewritten
290-
return !( /(mouse|datepicker)\.js$/ ).test( file );
290+
return !( /(mouse)\.js$/ ).test( file );
291291
}),
292292
grunt: [ "grunt.js", "build/**/*.js" ],
293293
tests: "tests/unit/**/*.js"

tests/unit/all-active.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"autocomplete/autocomplete.html",
2121
"button/button.html",
2222
"core/core.html",
23-
//"datepicker/datepicker.html",
23+
"datepicker/datepicker.html",
2424
"dialog/dialog.html",
2525
"draggable/draggable.html",
2626
"droppable/droppable.html",

tests/unit/datepicker/datepicker.html

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
<script src="datepicker_methods.js"></script>
2929
<script src="datepicker_options.js"></script>
3030
<script src="datepicker_test_helpers.js"></script>
31-
<script src="datepicker_tickets.js"></script>
3231

3332
<script src="../swarminject.js"></script>
3433
</head>

tests/unit/datepicker/datepicker_events.js

+19
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,23 @@ test('events', function() {
126126
equal(selectedThis, inp2[0], 'Callback close this');
127127
});
128128

129+
test('beforeShowDay-getDate', function() {
130+
expect( 3 );
131+
var inp = TestHelpers.datepicker.init('#inp', {beforeShowDay: function() { inp.datepicker('getDate'); return [true, '']; }}),
132+
dp = $('#ui-datepicker-div');
133+
inp.val('01/01/2010').datepicker('show');
134+
// contains non-breaking space
135+
equal($('div.ui-datepicker-title').text(), 'January 2010', 'Initial month');
136+
$('a.ui-datepicker-next', dp).click();
137+
$('a.ui-datepicker-next', dp).click();
138+
// contains non-breaking space
139+
equal($('div.ui-datepicker-title').text(), 'March 2010', 'After next clicks');
140+
inp.datepicker('hide').datepicker('show');
141+
$('a.ui-datepicker-prev', dp).click();
142+
$('a.ui-datepicker-prev', dp).click();
143+
// contains non-breaking space
144+
equal($('div.ui-datepicker-title').text(), 'November 2009', 'After prev clicks');
145+
inp.datepicker('hide');
146+
});
147+
129148
})(jQuery);

tests/unit/datepicker/datepicker_options.js

+64-4
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,7 @@ test('parseDate', function() {
810810
gmtDate.setMinutes(gmtDate.getMinutes() - gmtDate.getTimezoneOffset());
811811
TestHelpers.datepicker.equalsDate($.datepicker.parseDate('@', '981158400000'), gmtDate, 'Parse date @');
812812
TestHelpers.datepicker.equalsDate($.datepicker.parseDate('!', '631167552000000000'), gmtDate, 'Parse date !');
813+
813814
fr = $.datepicker.regional.fr;
814815
settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
815816
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames};
@@ -819,12 +820,11 @@ test('parseDate', function() {
819820
new Date(2001, 4 - 1, 9), 'Parse date d MM DD yy with settings');
820821
TestHelpers.datepicker.equalsDate($.datepicker.parseDate('DD, MM d, yy', 'Lundi, Avril 9, 2001', settings),
821822
new Date(2001, 4 - 1, 9), 'Parse date DD, MM d, yy with settings');
822-
TestHelpers.datepicker.equalsDate($.datepicker.parseDate('\'jour\' d \'de\' MM (\'\'DD\'\'), yy',
823-
'jour 9 de Avril (\'Lundi\'), 2001', settings), new Date(2001, 4 - 1, 9),
824-
'Parse date \'jour\' d \'de\' MM (\'\'DD\'\'), yy with settings');
823+
TestHelpers.datepicker.equalsDate($.datepicker.parseDate("'jour' d 'de' MM (''DD''), yy", "jour 9 de Avril ('Lundi'), 2001", settings),
824+
new Date(2001, 4 - 1, 9), "Parse date 'jour' d 'de' MM (''DD''), yy with settings");
825825

826826
zh = $.datepicker.regional['zh-CN'];
827-
TestHelpers.datepicker.equalsDate($.datepicker.parseDate('yy M d', '2011 十一 22', zh),
827+
TestHelpers.datepicker.equalsDate($.datepicker.parseDate('yy M d', '2011 十一月 22', zh),
828828
new Date(2011, 11 - 1, 22), 'Parse date yy M d with zh-CN');
829829
});
830830

@@ -881,6 +881,26 @@ test('parseDateErrors', function() {
881881
'Lun. 9 Apr 01 - D d M y', 'Unknown name at position 7');
882882
});
883883

884+
test('Ticket #7244: date parser does not fail when too many numbers are passed into the date function', function() {
885+
expect( 4 );
886+
var date;
887+
try{
888+
date = $.datepicker.parseDate('dd/mm/yy', '18/04/19881');
889+
ok(false, "Did not properly detect an invalid date");
890+
}catch(e){
891+
ok("invalid date detected");
892+
}
893+
894+
try {
895+
date = $.datepicker.parseDate('dd/mm/yy', '18/04/1988 @ 2:43 pm');
896+
equal(date.getDate(), 18);
897+
equal(date.getMonth(), 3);
898+
equal(date.getFullYear(), 1988);
899+
} catch(e) {
900+
ok(false, "Did not properly parse date with extra text separated by whitespace");
901+
}
902+
});
903+
884904
test('formatDate', function() {
885905
expect( 16 );
886906
TestHelpers.datepicker.init('#inp');
@@ -924,4 +944,44 @@ test('formatDate', function() {
924944
'Format date \'jour\' d \'de\' MM (\'\'DD\'\'), yy with settings');
925945
});
926946

947+
test('Ticket 6827: formatDate day of year calculation is wrong during day lights savings time', function(){
948+
expect( 1 );
949+
var time = $.datepicker.formatDate("oo", new Date("2010/03/30 12:00:00 CDT"));
950+
equal(time, "089");
951+
});
952+
953+
test('Ticket 7602: Stop datepicker from appearing with beforeShow event handler', function(){
954+
expect( 3 );
955+
var inp = TestHelpers.datepicker.init('#inp',{
956+
beforeShow: function(){
957+
return false;
958+
}
959+
}),
960+
dp = $('#ui-datepicker-div');
961+
inp.datepicker('show');
962+
equal(dp.css('display'), 'none',"beforeShow returns false");
963+
inp.datepicker('destroy');
964+
965+
inp = TestHelpers.datepicker.init('#inp',{
966+
beforeShow: function(){
967+
}
968+
});
969+
dp = $('#ui-datepicker-div');
970+
inp.datepicker('show');
971+
equal(dp.css('display'), 'block',"beforeShow returns nothing");
972+
inp.datepicker('hide');
973+
inp.datepicker('destroy');
974+
975+
inp = TestHelpers.datepicker.init('#inp',{
976+
beforeShow: function(){
977+
return true;
978+
}
979+
});
980+
dp = $('#ui-datepicker-div');
981+
inp.datepicker('show');
982+
equal(dp.css('display'), 'block',"beforeShow returns true");
983+
inp.datepicker('hide');
984+
inp.datepicker('destroy');
985+
});
986+
927987
})(jQuery);

tests/unit/datepicker/datepicker_tickets.js

-88
This file was deleted.

0 commit comments

Comments
 (0)