Skip to content

Commit aa57f82

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 9a20b6b commit aa57f82

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
@@ -80,13 +80,11 @@ test( "value", function() {
8080
});
8181

8282
test( "valueAsDate", function() {
83-
expect( 13 );
83+
expect( 6 );
8484

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

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

137105
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( "Stop datepicker from appearing with beforeOpen event handler", function() {
206102
expect( 3 );
207103

0 commit comments

Comments
 (0)