Skip to content

Commit 7ad8ea6

Browse files
committed
Datepicker tests: Remove pass-through options unit tests
Add Test if these options are set on the underlying calendar instance.
1 parent e4e9de5 commit 7ad8ea6

File tree

2 files changed

+25
-161
lines changed

2 files changed

+25
-161
lines changed

tests/unit/datepicker/datepicker_methods.js

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,11 @@ test( "value", function() {
7979
});
8080

8181
test( "valueAsDate", function() {
82-
expect( 13 );
82+
expect( 6 );
8383

84-
var minDate, maxDate, dateAndTimeToSet, dateAndTimeClone,
85-
input = TestHelpers.datepicker.init( "#datepicker" ),
84+
var input = TestHelpers.datepicker.init( "#datepicker" ),
8685
picker = input.datepicker( "widget" ),
87-
date1 = new Date( 2008, 6 - 1, 4 ),
88-
date2 = new Date();
86+
date1 = new Date( 2008, 6 - 1, 4 );
8987

9088
input.datepicker( "valueAsDate", new Date( 2014, 0, 1 ) );
9189
equal( input.val(), "1/1/14", "Input's value set" );
@@ -101,36 +99,6 @@ test( "valueAsDate", function() {
10199
ok(input.datepicker( "valueAsDate" ) === null, "Set date - default" );
102100
input.datepicker( "valueAsDate", date1 );
103101
TestHelpers.datepicker.equalsDate(input.datepicker( "valueAsDate" ), date1, "Set date - 2008-06-04" );
104-
105-
// With minimum/maximum
106-
input = TestHelpers.datepicker.init( "#datepicker" );
107-
date1 = new Date( 2008, 1 - 1, 4 );
108-
date2 = new Date( 2008, 6 - 1, 4 );
109-
minDate = new Date( 2008, 2 - 1, 29 );
110-
maxDate = new Date( 2008, 3 - 1, 28 );
111-
112-
input.val( "" ).datepicker( "option", { min: minDate } ).datepicker( "valueAsDate", date2 );
113-
TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date2, "Set date min/max - value > min" );
114-
115-
input.datepicker( "valueAsDate", date1 );
116-
TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date2, "Set date min/max - value < min" );
117-
118-
input.val( "" ).datepicker( "option", { max: maxDate, min: null } ).datepicker( "valueAsDate", date1 );
119-
TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date1, "Set date min/max - value < max" );
120-
121-
input.datepicker( "valueAsDate", date2 );
122-
TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date1, "Set date min/max - value > max" );
123-
124-
input.val( "" ).datepicker( "option", { min: minDate } ).datepicker( "valueAsDate", date1 );
125-
ok( input.datepicker( "valueAsDate" ) === null, "Set date min/max - value < min" );
126-
127-
input.datepicker( "valueAsDate", date2 );
128-
ok( input.datepicker( "valueAsDate" ) === null, "Set date min/max - value > max" );
129-
130-
dateAndTimeToSet = new Date( 2008, 3 - 1, 28, 1, 11, 0 );
131-
dateAndTimeClone = new Date( 2008, 3 - 1, 28, 1, 11, 0 );
132-
input.datepicker( "valueAsDate", dateAndTimeToSet );
133-
equal( dateAndTimeToSet.getTime(), dateAndTimeClone.getTime(), "Date object passed should not be changed by valueAsDate" );
134102
});
135103

136104
test( "isValid", function() {

tests/unit/datepicker/datepicker_options.js

Lines changed: 22 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -40,76 +40,34 @@ test( "appendTo", function() {
4040
input.datepicker( "destroy" );
4141
});
4242

43-
test("buttons", function() {
44-
expect( 3 );
45-
46-
var btn,
47-
buttons = {
48-
"Ok": function() {},
49-
"Cancel": function() {}
43+
test( "Pass-through options", function() {
44+
expect( 8 );
45+
46+
var options = {
47+
"buttons": { "Test": $.noop },
48+
"dateFormat": { date: "full" },
49+
"eachDay": function( day ) { day; },
50+
"max": new Date( 2000, 0, 1 ),
51+
"min": new Date( 2000, 0, 2 ),
52+
"numberOfMonths": 3,
53+
"showWeek": true
5054
},
51-
element = $( "#datepicker" ).datepicker({ buttons: buttons });
55+
input = $( "#datepicker" ).val( "1/1/14" ).datepicker(),
56+
datepickerInstance = input.datepicker( "instance" );
5257

53-
btn = element.datepicker( "widget" ).find( ".ui-calendar-buttonpane button" );
54-
equal( btn.length, 2, "number of buttons" );
55-
ok( btn.parent().hasClass( "ui-calendar-buttonset" ), "buttons in container");
56-
ok( element.datepicker( "widget" ).hasClass( "ui-calendar-buttons" ), "calendar wrapper adds class about having buttons" );
57-
});
58+
$.each( options, function( key, value ) {
59+
input.datepicker( "option", key, value );
5860

59-
test( "dateFormat", function() {
60-
expect( 2 );
61-
var input = $( "#datepicker" ).val( "1/1/14" ).datepicker(),
62-
picker = input.datepicker( "widget" ),
63-
firstDayLink = picker.find( "td[id]:first a" );
64-
65-
input.datepicker( "open" );
66-
firstDayLink.trigger( "mousedown" );
67-
equal( input.val(), "1/1/14", "default formatting" );
68-
69-
input.datepicker( "option", "dateFormat", { date: "full" } );
70-
equal( input.val(), "Wednesday, January 1, 2014", "updated formatting" );
71-
72-
input.datepicker( "destroy" );
73-
});
61+
deepEqual(
62+
datepickerInstance.calendar.calendar( "option", key ),
63+
value,
64+
"option " + key + ": correct value"
65+
);
7466

75-
test( "eachDay", function() {
76-
expect( 5 );
77-
var timestamp,
78-
input = $( "#datepicker" ).datepicker(),
79-
picker = input.datepicker( "widget" ),
80-
firstCell = picker.find( "td[id]:first" );
81-
82-
equal( firstCell.find( "a" ).length, 1, "days are selectable by default" );
83-
timestamp = parseInt( firstCell.find( "a" ).attr( "data-timestamp" ), 10 );
84-
equal( new Date( timestamp ).getDate(), 1, "first available day is the 1st by default" );
85-
86-
// Do not render the 1st of the month
87-
input.datepicker( "option", "eachDay", function( day ) {
88-
if ( day.date === 1 ) {
89-
day.render = false;
67+
if ( key === "dateFormat" ) {
68+
equal( input.val(), "Wednesday, January 1, 2014", "option " + key + ": updated format" );
9069
}
9170
});
92-
firstCell = picker.find( "td[id]:first" );
93-
timestamp = parseInt( firstCell.find( "a" ).attr( "data-timestamp" ), 10 );
94-
equal( new Date( timestamp ).getDate(), 2, "first available day is the 2nd" );
95-
96-
// Display the 1st of the month but make it not selectable.
97-
input.datepicker( "option", "eachDay", function( day ) {
98-
if ( day.date === 1 ) {
99-
day.selectable = false;
100-
}
101-
});
102-
firstCell = picker.find( "td[id]:first" );
103-
equal( firstCell.find( "a" ).length, 0, "the 1st is not selectable" );
104-
105-
input.datepicker( "option", "eachDay", function( day ) {
106-
if ( day.date === 1 ) {
107-
day.extraClasses = "ui-custom";
108-
}
109-
});
110-
ok( picker.find( "td[id]:first a" ).hasClass( "ui-custom" ), "extraClasses applied" );
111-
112-
input.datepicker( "destroy" );
11371
});
11472

11573
asyncTest( "position", function() {
@@ -140,68 +98,6 @@ asyncTest( "position", function() {
14098
});
14199
});
142100

143-
test( "showWeek", function() {
144-
expect( 7 );
145-
var input = $( "#datepicker" ).datepicker(),
146-
container = input.datepicker( "widget" );
147-
148-
equal( container.find( "thead th" ).length, 7, "just 7 days, no column cell" );
149-
equal( container.find( ".ui-calendar-week-col" ).length, 0,
150-
"no week column cells present" );
151-
input.datepicker( "destroy" );
152-
153-
input = $( "#datepicker" ).datepicker({ showWeek: true });
154-
container = input.datepicker( "widget" );
155-
equal( container.find( "thead th" ).length, 8, "7 days + a column cell" );
156-
ok( container.find( "thead th:first" ).is( ".ui-calendar-week-col" ),
157-
"first cell should have ui-calendar-week-col class name" );
158-
equal( container.find( ".ui-calendar-week-col" ).length,
159-
container.find( "tr" ).length, "one week cell for each week" );
160-
input.datepicker( "destroy" );
161-
162-
input = $( "#datepicker" ).datepicker();
163-
container = input.datepicker( "widget" );
164-
equal( container.find( "thead th" ).length, 7, "no week column" );
165-
input.datepicker( "option", "showWeek", true );
166-
equal( container.find( "thead th" ).length, 8, "supports changing option after init" );
167-
});
168-
169-
test( "min / max", function() {
170-
expect( 14 );
171-
172-
var inp = TestHelpers.datepicker.init( "#datepicker" ),
173-
minDate = new Date( 2008, 2 - 1, 29 ),
174-
maxDate = new Date( 2008, 12 - 1, 7 );
175-
176-
inp.val( "6/4/08" ).datepicker( "option", { min: minDate } );
177-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min" );
178-
ok( inp.datepicker( "isValid" ) );
179-
180-
inp.datepicker( "option", { min: null } ).val( "1/4/08" ).datepicker( "option", { min: minDate } );
181-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 1 - 1, 4 ), "Min/max - value < min" );
182-
ok( !inp.datepicker( "isValid" ) );
183-
184-
inp.datepicker( "option", { min: null } ).val( "6/4/08" ).datepicker( "option", { max: maxDate } );
185-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < max" );
186-
ok( inp.datepicker( "isValid" ) );
187-
188-
inp.datepicker( "option", { max: null } ).val( "1/4/09" ).datepicker( "option", { max: maxDate } );
189-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2009, 1 - 1, 4 ), "Min/max - setDate > max" );
190-
ok( !inp.datepicker( "isValid" ) );
191-
192-
inp.datepicker( "option", { max: null } ).val( "1/4/08" ).datepicker( "option", { min: minDate, max: maxDate } );
193-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 1 - 1, 4 ), "Min/max - value < min" );
194-
ok( !inp.datepicker( "isValid" ) );
195-
196-
inp.datepicker( "option", { max: null } ).val( "6/4/08" ).datepicker( "option", { min: minDate, max: maxDate } );
197-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min, < max" );
198-
ok( inp.datepicker( "isValid" ) );
199-
200-
inp.datepicker( "option", { max: null } ).val( "1/4/09" ).datepicker( "option", { min: minDate, max: maxDate } );
201-
TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2009, 1 - 1, 4 ), "Min/max - value > max" );
202-
ok( !inp.datepicker( "isValid" ) );
203-
});
204-
205101
test( "Ticket 7602: Stop datepicker from appearing with beforeOpen event handler", function() {
206102
expect( 3 );
207103

0 commit comments

Comments
 (0)