Skip to content

Commit 2963622

Browse files
committed
Datepicker tests: Use setup and teardown methods, remove helper file
1 parent 85fe553 commit 2963622

File tree

6 files changed

+277
-294
lines changed

6 files changed

+277
-294
lines changed

tests/unit/datepicker/core.js

Lines changed: 103 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,122 @@
11
define( [
22
"jquery",
3-
"./helper",
43
"ui/widgets/datepicker"
5-
], function( $, testHelper ) {
6-
7-
module( "datepicker: core" );
4+
], function( $ ) {
5+
6+
module( "datepicker: core", {
7+
setup: function() {
8+
this.element = $( "#datepicker" ).datepicker( { show: false, hide: false } );
9+
this.widget = this.element.datepicker( "widget" );
10+
},
11+
teardown: function() {
12+
this.element.datepicker( "destroy" ).val( "" );
13+
}
14+
} );
815

916
test( "input's value determines starting date", function() {
1017
expect( 3 );
1118

12-
var input = $( "#datepicker" ).val( "1/1/14" ).datepicker(),
13-
picker = input.datepicker( "widget" );
14-
15-
input.datepicker( "open" );
19+
this.element = $( "<input>" ).appendTo( "#qunit-fixture" );
20+
this.element.val( "1/1/14" ).datepicker();
21+
this.widget = this.element.datepicker( "widget" );
1622

17-
equal( picker.find( ".ui-calendar-month" ).html(), "January", "correct month displayed" );
18-
equal( picker.find( ".ui-calendar-year" ).html(), "2014", "correct year displayed" );
19-
equal( picker.find( ".ui-state-active" ).html(), "1", "correct day highlighted" );
23+
this.element.datepicker( "open" );
2024

21-
input.val( "" ).datepicker( "destroy" );
25+
equal( this.widget.find( ".ui-calendar-month" ).html(), "January", "correct month displayed" );
26+
equal( this.widget.find( ".ui-calendar-year" ).html(), "2014", "correct year displayed" );
27+
equal( this.widget.find( ".ui-state-active" ).html(), "1", "correct day highlighted" );
2228
} );
2329

2430
asyncTest( "base structure", function() {
2531
expect( 5 );
2632

27-
var input = testHelper.initNewInput(),
28-
widget = input.datepicker( "widget" );
33+
var that = this;
2934

30-
input.focus();
35+
this.element.focus();
3136

3237
setTimeout( function() {
33-
ok( widget.is( ":visible" ), "Datepicker visible" );
34-
equal( widget.children().length, 3, "Child count" );
35-
ok( widget.is( ".ui-calendar" ), "Class ui-calendar" );
36-
ok( widget.is( ".ui-datepicker" ), "Class ui-datepicker" );
37-
ok( widget.is( ".ui-front" ), "Class ui-front" );
38+
ok( that.widget.is( ":visible" ), "Datepicker visible" );
39+
equal( that.widget.children().length, 3, "Child count" );
40+
ok( that.widget.is( ".ui-calendar" ), "Class ui-calendar" );
41+
ok( that.widget.is( ".ui-datepicker" ), "Class ui-datepicker" );
42+
ok( that.widget.is( ".ui-front" ), "Class ui-front" );
3843

39-
input.datepicker( "close" );
44+
that.element.datepicker( "close" );
4045
start();
4146
}, 50 );
4247
} );
4348

44-
asyncTest( "Keyboard handling: input", function( assert ) {
45-
expect( 10 );
46-
var picker, instance,
47-
input = $( "#datepicker" ).datepicker();
49+
asyncTest( "Keyboard handling: focus", function() {
50+
expect( 2 );
4851

49-
function step1() {
50-
testHelper.init( input );
51-
picker = input.datepicker( "widget" );
52+
var that = this;
5253

53-
ok( !picker.is( ":visible" ), "datepicker closed" );
54+
ok( !this.widget.is( ":visible" ), "datepicker closed" );
5455

55-
input.val( "" ).focus();
56-
setTimeout( function() {
57-
ok( picker.is( ":visible" ), "Datepicker opens when receiving focus" );
58-
input.datepicker( "destroy" );
59-
step2();
60-
}, 100 );
61-
}
56+
this.element.focus();
57+
setTimeout( function() {
58+
ok( that.widget.is( ":visible" ), "Datepicker opens when receiving focus" );
59+
start();
60+
}, 100 );
61+
} );
6262

63-
function step2() {
64-
testHelper.init( input );
65-
picker = input.datepicker( "widget" );
63+
asyncTest( "Keyboard handling: keystroke up", function() {
64+
expect( 2 );
6665

67-
ok( !picker.is( ":visible" ), "datepicker closed" );
66+
var that = this;
6867

69-
input.val( "" ).simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
70-
setTimeout( function() {
71-
ok( picker.is( ":visible" ), "Keystroke up opens datepicker" );
72-
input.datepicker( "destroy" );
73-
step3();
74-
}, 100 );
75-
}
68+
ok( !this.widget.is( ":visible" ), "datepicker closed" );
7669

77-
function step3() {
78-
testHelper.init( input );
79-
instance = input.datepicker( "instance" );
80-
81-
// Enter = Select preset date
82-
input
83-
.val( "1/1/14" )
84-
.datepicker( "refresh" )
85-
.datepicker( "open" )
86-
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
87-
assert.dateEqual( input.datepicker( "valueAsDate" ), new Date( 2014, 0, 1 ),
88-
"Keystroke enter - preset" );
89-
90-
input
91-
.val( "" )
92-
.datepicker( "open" );
93-
ok( instance.isOpen, "datepicker is open before escape" );
94-
95-
input.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
96-
ok( !instance.isOpen, "escape closes the datepicker" );
97-
98-
input
99-
.val( "1/1/14" )
100-
.datepicker( "open" )
101-
.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
102-
assert.dateEqual( input.datepicker( "valueAsDate" ), new Date( 2014, 0, 1 ),
103-
"Keystroke esc - preset" );
104-
105-
input
106-
.val( "1/1/14" )
107-
.datepicker( "open" )
108-
.simulate( "keydown", { ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP } )
109-
.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
110-
assert.dateEqual( input.datepicker( "valueAsDate" ), new Date( 2014, 0, 1 ),
111-
"Keystroke esc - abandoned" );
112-
113-
input
114-
.val( "1/2/14" )
115-
.simulate( "keyup" );
116-
assert.dateEqual( input.datepicker( "valueAsDate" ), new Date( 2014, 0, 2 ),
117-
"Picker updated as user types into input" );
118-
119-
input.datepicker( "destroy" );
70+
this.element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
71+
setTimeout( function() {
72+
ok( that.widget.is( ":visible" ), "Keystroke up opens datepicker" );
12073
start();
121-
}
74+
}, 100 );
75+
} );
12276

123-
step1();
77+
test( "Keyboard handling: input", function( assert ) {
78+
expect( 6 );
79+
80+
var that = this,
81+
instance = that.element.datepicker( "instance" );
82+
83+
// Enter = Select preset date
84+
that.element
85+
.val( "1/1/14" )
86+
.datepicker( "refresh" )
87+
.datepicker( "open" )
88+
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
89+
assert.dateEqual( that.element.datepicker( "valueAsDate" ), new Date( 2014, 0, 1 ),
90+
"Keystroke enter - preset" );
91+
92+
that.element
93+
.val( "" )
94+
.datepicker( "open" );
95+
ok( instance.isOpen, "datepicker is open before escape" );
96+
97+
that.element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
98+
ok( !instance.isOpen, "escape closes the datepicker" );
99+
100+
that.element
101+
.val( "1/1/14" )
102+
.datepicker( "open" )
103+
.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
104+
assert.dateEqual( that.element.datepicker( "valueAsDate" ), new Date( 2014, 0, 1 ),
105+
"Keystroke esc - preset" );
106+
107+
that.element
108+
.val( "1/1/14" )
109+
.datepicker( "open" )
110+
.simulate( "keydown", { ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP } )
111+
.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
112+
assert.dateEqual( that.element.datepicker( "valueAsDate" ), new Date( 2014, 0, 1 ),
113+
"Keystroke esc - abandoned" );
114+
115+
that.element
116+
.val( "1/2/14" )
117+
.simulate( "keyup" );
118+
assert.dateEqual( that.element.datepicker( "valueAsDate" ), new Date( 2014, 0, 2 ),
119+
"Picker updated as user types into input" );
124120
} );
125121

126122
// TODO: implement
@@ -131,37 +127,36 @@ test( "ARIA", function() {
131127
asyncTest( "mouse", function( assert ) {
132128
expect( 4 );
133129

134-
var input = testHelper.init( $( "#datepicker" ).val( "" ) ),
135-
picker = input.datepicker( "widget" );
130+
var that = this;
136131

137-
input.datepicker( "open" );
132+
this.element.datepicker( "open" );
138133

139134
setTimeout( function() {
140-
input.val( "4/4/08" ).datepicker( "refresh" ).datepicker( "open" );
141-
$( ".ui-calendar-calendar tbody button:contains(12)", picker ).simulate( "mousedown", {} );
135+
that.element.val( "4/4/08" ).datepicker( "refresh" ).datepicker( "open" );
136+
$( ".ui-calendar-calendar tbody button:contains(12)", that.widget ).simulate( "mousedown", {} );
142137
assert.dateEqual(
143-
input.datepicker( "valueAsDate" ),
138+
that.element.datepicker( "valueAsDate" ),
144139
new Date( 2008, 4 - 1, 12 ),
145140
"Mouse click - preset"
146141
);
147142

148-
input.val( "" ).datepicker( "refresh" );
149-
input.simulate( "click" );
150-
strictEqual( input.datepicker( "valueAsDate" ), null, "Mouse click - close" );
143+
that.element.val( "" ).datepicker( "refresh" );
144+
that.element.simulate( "click" );
145+
strictEqual( that.element.datepicker( "valueAsDate" ), null, "Mouse click - close" );
151146

152-
input.val( "4/4/08" ).datepicker( "refresh" ).datepicker( "open" );
153-
input.simulate( "click" );
147+
that.element.val( "4/4/08" ).datepicker( "refresh" ).datepicker( "open" );
148+
that.element.simulate( "click" );
154149
assert.dateEqual(
155-
input.datepicker( "valueAsDate" ),
150+
that.element.datepicker( "valueAsDate" ),
156151
new Date( 2008, 4 - 1, 4 ),
157152
"Mouse click - close + preset"
158153
);
159154

160-
input.val( "4/4/08" ).datepicker( "refresh" ).datepicker( "open" );
161-
picker.find( "a.ui-calendar-prev" ).simulate( "click" );
162-
input.simulate( "click" );
155+
that.element.val( "4/4/08" ).datepicker( "refresh" ).datepicker( "open" );
156+
that.widget.find( "a.ui-calendar-prev" ).simulate( "click" );
157+
that.element.simulate( "click" );
163158
assert.dateEqual(
164-
input.datepicker( "valueAsDate" ),
159+
that.element.datepicker( "valueAsDate" ),
165160
new Date( 2008, 4 - 1, 4 ),
166161
"Mouse click - abandoned"
167162
);

tests/unit/datepicker/datepicker.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
<div id="qunit-fixture">
1515

1616
<input type="text" id="datepicker">
17-
<input type="text" id="datepicker2">
1817

1918
</div>
2019
</body>

0 commit comments

Comments
 (0)