1
1
define ( [
2
2
"jquery" ,
3
- "./helper" ,
4
3
"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
+ } ) ;
8
15
9
16
test ( "input's value determines starting date" , function ( ) {
10
17
expect ( 3 ) ;
11
18
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" ) ;
16
22
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" ) ;
20
24
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" ) ;
22
28
} ) ;
23
29
24
30
asyncTest ( "base structure" , function ( ) {
25
31
expect ( 5 ) ;
26
32
27
- var input = testHelper . initNewInput ( ) ,
28
- widget = input . datepicker ( "widget" ) ;
33
+ var that = this ;
29
34
30
- input . focus ( ) ;
35
+ this . element . focus ( ) ;
31
36
32
37
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" ) ;
38
43
39
- input . datepicker ( "close" ) ;
44
+ that . element . datepicker ( "close" ) ;
40
45
start ( ) ;
41
46
} , 50 ) ;
42
47
} ) ;
43
48
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 ) ;
48
51
49
- function step1 ( ) {
50
- testHelper . init ( input ) ;
51
- picker = input . datepicker ( "widget" ) ;
52
+ var that = this ;
52
53
53
- ok ( ! picker . is ( ":visible" ) , "datepicker closed" ) ;
54
+ ok ( ! this . widget . is ( ":visible" ) , "datepicker closed" ) ;
54
55
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
+ } ) ;
62
62
63
- function step2 ( ) {
64
- testHelper . init ( input ) ;
65
- picker = input . datepicker ( "widget" ) ;
63
+ asyncTest ( "Keyboard handling: keystroke up" , function ( ) {
64
+ expect ( 2 ) ;
66
65
67
- ok ( ! picker . is ( ":visible" ) , "datepicker closed" ) ;
66
+ var that = this ;
68
67
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" ) ;
76
69
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" ) ;
120
73
start ( ) ;
121
- }
74
+ } , 100 ) ;
75
+ } ) ;
122
76
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" ) ;
124
120
} ) ;
125
121
126
122
// TODO: implement
@@ -131,37 +127,36 @@ test( "ARIA", function() {
131
127
asyncTest ( "mouse" , function ( assert ) {
132
128
expect ( 4 ) ;
133
129
134
- var input = testHelper . init ( $ ( "#datepicker" ) . val ( "" ) ) ,
135
- picker = input . datepicker ( "widget" ) ;
130
+ var that = this ;
136
131
137
- input . datepicker ( "open" ) ;
132
+ this . element . datepicker ( "open" ) ;
138
133
139
134
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" , { } ) ;
142
137
assert . dateEqual (
143
- input . datepicker ( "valueAsDate" ) ,
138
+ that . element . datepicker ( "valueAsDate" ) ,
144
139
new Date ( 2008 , 4 - 1 , 12 ) ,
145
140
"Mouse click - preset"
146
141
) ;
147
142
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" ) ;
151
146
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" ) ;
154
149
assert . dateEqual (
155
- input . datepicker ( "valueAsDate" ) ,
150
+ that . element . datepicker ( "valueAsDate" ) ,
156
151
new Date ( 2008 , 4 - 1 , 4 ) ,
157
152
"Mouse click - close + preset"
158
153
) ;
159
154
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" ) ;
163
158
assert . dateEqual (
164
- input . datepicker ( "valueAsDate" ) ,
159
+ that . element . datepicker ( "valueAsDate" ) ,
165
160
new Date ( 2008 , 4 - 1 , 4 ) ,
166
161
"Mouse click - abandoned"
167
162
) ;
0 commit comments