/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/dialog/dialog_events.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/dialog/dialog_events.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 3 months ago) by torben
File MIME type: application/javascript
File size: 12041 byte(s)
initial import
1 /*
2 * dialog_events.js
3 */
4 (function($) {
5
6 module("dialog: events");
7
8 test("open", function() {
9 expect(13);
10
11 var element = $("<div></div>");
12 element.dialog({
13 open: function(ev, ui) {
14 ok(element.data("ui-dialog")._isOpen, "interal _isOpen flag is set");
15 ok(true, "autoOpen: true fires open callback");
16 equal(this, element[0], "context of callback");
17 equal(ev.type, "dialogopen", "event type in callback");
18 deepEqual(ui, {}, "ui hash in callback");
19 }
20 });
21 element.remove();
22
23 element = $("<div></div>");
24 element.dialog({
25 autoOpen: false,
26 open: function(ev, ui) {
27 ok(true, ".dialog('open') fires open callback");
28 equal(this, element[0], "context of callback");
29 equal(ev.type, "dialogopen", "event type in callback");
30 deepEqual(ui, {}, "ui hash in callback");
31 }
32 }).bind("dialogopen", function(ev, ui) {
33 ok(element.data("ui-dialog")._isOpen, "interal _isOpen flag is set");
34 ok(true, "dialog('open') fires open event");
35 equal(this, element[0], "context of event");
36 deepEqual(ui, {}, "ui hash in event");
37 });
38 element.dialog("open");
39 element.remove();
40 });
41
42
43 test( "focus", function() {
44 expect( 5 );
45 var element, other;
46 element = $("#dialog1").dialog({
47 autoOpen: false
48 });
49 other = $("#dialog2").dialog({
50 autoOpen: false
51 });
52
53 element.one( "dialogopen", function() {
54 ok( true, "open, just once" );
55 });
56 element.one( "dialogfocus", function() {
57 ok( true, "focus on open" );
58 });
59 other.dialog( "open" );
60
61 element.one( "dialogfocus", function() {
62 ok( true, "when opening and already open and wasn't on top" );
63 });
64 other.dialog( "open" );
65 element.dialog( "open" );
66
67 element.one( "dialogfocus", function() {
68 ok( true, "when calling moveToTop and wasn't on top" );
69 });
70 other.dialog( "moveToTop" );
71 element.dialog( "moveToTop" );
72
73 element.bind( "dialogfocus", function() {
74 ok( true, "when mousedown anywhere on the dialog and it wasn't on top" );
75 });
76 other.dialog( "moveToTop" );
77 element.trigger( "mousedown" );
78
79 // triggers just once when already on top
80 element.dialog( "open" );
81 element.dialog( "moveToTop" );
82 element.trigger( "mousedown" );
83
84 element.add( other ).remove();
85 });
86
87 test("dragStart", function() {
88 expect(9);
89
90 var handle,
91 element = $("<div></div>").dialog({
92 dragStart: function(ev, ui) {
93 ok(true, "dragging fires dragStart callback");
94 equal(this, element[0], "context of callback");
95 equal(ev.type, "dialogdragstart", "event type in callback");
96 ok(ui.position !== undefined, "ui.position in callback");
97 ok(ui.offset !== undefined, "ui.offset in callback");
98 }
99 }).bind("dialogdragstart", function(ev, ui) {
100 ok(true, "dragging fires dialogdragstart event");
101 equal(this, element[0], "context of event");
102 ok(ui.position !== undefined, "ui.position in callback");
103 ok(ui.offset !== undefined, "ui.offset in callback");
104 });
105
106 handle = $(".ui-dialog-titlebar", element.dialog("widget"));
107 TestHelpers.dialog.drag(element, handle, 50, 50);
108 element.remove();
109 });
110
111 test("drag", function() {
112 expect(9);
113 var handle,
114 hasDragged = false,
115 element = $("<div></div>").dialog({
116 drag: function(ev, ui) {
117 if (!hasDragged) {
118 ok(true, "dragging fires drag callback");
119 equal(this, element[0], "context of callback");
120 equal(ev.type, "dialogdrag", "event type in callback");
121 ok(ui.position !== undefined, "ui.position in callback");
122 ok(ui.offset !== undefined, "ui.offset in callback");
123
124 hasDragged = true;
125 }
126 }
127 }).one("dialogdrag", function(ev, ui) {
128 ok(true, "dragging fires dialogdrag event");
129 equal(this, element[0], "context of event");
130 ok(ui.position !== undefined, "ui.position in callback");
131 ok(ui.offset !== undefined, "ui.offset in callback");
132 });
133
134 handle = $(".ui-dialog-titlebar", element.dialog("widget"));
135 TestHelpers.dialog.drag(element, handle, 50, 50);
136 element.remove();
137 });
138
139 test("dragStop", function() {
140 expect(9);
141
142 var handle,
143 element = $("<div></div>").dialog({
144 dragStop: function(ev, ui) {
145 ok(true, "dragging fires dragStop callback");
146 equal(this, element[0], "context of callback");
147 equal(ev.type, "dialogdragstop", "event type in callback");
148 ok(ui.position !== undefined, "ui.position in callback");
149 ok(ui.offset !== undefined, "ui.offset in callback");
150 }
151 }).bind("dialogdragstop", function(ev, ui) {
152 ok(true, "dragging fires dialogdragstop event");
153 equal(this, element[0], "context of event");
154 ok(ui.position !== undefined, "ui.position in callback");
155 ok(ui.offset !== undefined, "ui.offset in callback");
156 });
157
158 handle = $(".ui-dialog-titlebar", element.dialog("widget"));
159 TestHelpers.dialog.drag(element, handle, 50, 50);
160 element.remove();
161 });
162
163 test("resizeStart", function() {
164 expect(13);
165
166 var handle,
167 element = $("<div></div>").dialog({
168 resizeStart: function(ev, ui) {
169 ok(true, "resizing fires resizeStart callback");
170 equal(this, element[0], "context of callback");
171 equal(ev.type, "dialogresizestart", "event type in callback");
172 ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
173 ok(ui.originalSize !== undefined, "ui.originalSize in callback");
174 ok(ui.position !== undefined, "ui.position in callback");
175 ok(ui.size !== undefined, "ui.size in callback");
176 }
177 }).bind("dialogresizestart", function(ev, ui) {
178 ok(true, "resizing fires dialogresizestart event");
179 equal(this, element[0], "context of event");
180 ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
181 ok(ui.originalSize !== undefined, "ui.originalSize in callback");
182 ok(ui.position !== undefined, "ui.position in callback");
183 ok(ui.size !== undefined, "ui.size in callback");
184 });
185
186 handle = $(".ui-resizable-se", element.dialog("widget"));
187 TestHelpers.dialog.drag(element, handle, 50, 50);
188 element.remove();
189 });
190
191 test("resize", function() {
192 expect(13);
193 var handle,
194 hasResized = false,
195 element = $("<div></div>").dialog({
196 resize: function(ev, ui) {
197 if (!hasResized) {
198 ok(true, "resizing fires resize callback");
199 equal(this, element[0], "context of callback");
200 equal(ev.type, "dialogresize", "event type in callback");
201 ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
202 ok(ui.originalSize !== undefined, "ui.originalSize in callback");
203 ok(ui.position !== undefined, "ui.position in callback");
204 ok(ui.size !== undefined, "ui.size in callback");
205
206 hasResized = true;
207 }
208 }
209 }).one("dialogresize", function(ev, ui) {
210 ok(true, "resizing fires dialogresize event");
211 equal(this, element[0], "context of event");
212 ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
213 ok(ui.originalSize !== undefined, "ui.originalSize in callback");
214 ok(ui.position !== undefined, "ui.position in callback");
215 ok(ui.size !== undefined, "ui.size in callback");
216 });
217
218 handle = $(".ui-resizable-se", element.dialog("widget"));
219 TestHelpers.dialog.drag(element, handle, 50, 50);
220 element.remove();
221 });
222
223 test("resizeStop", function() {
224 expect(13);
225
226 var handle,
227 element = $("<div></div>").dialog({
228 resizeStop: function(ev, ui) {
229 ok(true, "resizing fires resizeStop callback");
230 equal(this, element[0], "context of callback");
231 equal(ev.type, "dialogresizestop", "event type in callback");
232 ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
233 ok(ui.originalSize !== undefined, "ui.originalSize in callback");
234 ok(ui.position !== undefined, "ui.position in callback");
235 ok(ui.size !== undefined, "ui.size in callback");
236 }
237 }).bind("dialogresizestop", function(ev, ui) {
238 ok(true, "resizing fires dialogresizestop event");
239 equal(this, element[0], "context of event");
240 ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
241 ok(ui.originalSize !== undefined, "ui.originalSize in callback");
242 ok(ui.position !== undefined, "ui.position in callback");
243 ok(ui.size !== undefined, "ui.size in callback");
244 });
245
246 handle = $(".ui-resizable-se", element.dialog("widget"));
247 TestHelpers.dialog.drag(element, handle, 50, 50);
248 element.remove();
249 });
250
251 asyncTest("close", function() {
252 expect(14);
253
254 var element = $("<div></div>").dialog({
255 close: function(ev, ui) {
256 ok(true, ".dialog('close') fires close callback");
257 equal(this, element[0], "context of callback");
258 equal(ev.type, "dialogclose", "event type in callback");
259 deepEqual(ui, {}, "ui hash in callback");
260 }
261 }).bind("dialogclose", function(ev, ui) {
262 ok(true, ".dialog('close') fires dialogclose event");
263 equal(this, element[0], "context of event");
264 deepEqual(ui, {}, "ui hash in event");
265 });
266 element.dialog("close");
267 element.remove();
268
269 // Close event with an effect
270 element = $("<div></div>").dialog({
271 hide: 10,
272 close: function(ev, ui) {
273 ok(true, ".dialog('close') fires close callback");
274 equal(this, element[0], "context of callback");
275 equal(ev.type, "dialogclose", "event type in callback");
276 deepEqual(ui, {}, "ui hash in callback");
277 start();
278 }
279 }).bind("dialogclose", function(ev, ui) {
280 ok(true, ".dialog('close') fires dialogclose event");
281 equal(this, element[0], "context of event");
282 deepEqual(ui, {}, "ui hash in event");
283 });
284 element.dialog("close");
285 });
286
287 test("beforeClose", function() {
288 expect(14);
289
290 var element = $("<div></div>").dialog({
291 beforeClose: function(ev, ui) {
292 ok(true, ".dialog('close') fires beforeClose callback");
293 equal(this, element[0], "context of callback");
294 equal(ev.type, "dialogbeforeclose", "event type in callback");
295 deepEqual(ui, {}, "ui hash in callback");
296 return false;
297 }
298 });
299
300 element.dialog("close");
301 ok( element.dialog("widget").is(":visible"), "beforeClose callback should prevent dialog from closing");
302 element.remove();
303
304 element = $("<div></div>").dialog();
305 element.dialog("option", "beforeClose", function(ev, ui) {
306 ok(true, ".dialog('close') fires beforeClose callback");
307 equal(this, element[0], "context of callback");
308 equal(ev.type, "dialogbeforeclose", "event type in callback");
309 deepEqual(ui, {}, "ui hash in callback");
310 return false;
311 });
312 element.dialog("close");
313
314 ok( element.dialog("widget").is(":visible"), "beforeClose callback should prevent dialog from closing");
315 element.remove();
316
317 element = $("<div></div>").dialog().bind("dialogbeforeclose", function(ev, ui) {
318 ok(true, ".dialog('close') triggers dialogbeforeclose event");
319 equal(this, element[0], "context of event");
320 deepEqual(ui, {}, "ui hash in event");
321 return false;
322 });
323 element.dialog("close");
324 ok( element.dialog("widget").is(":visible"), "dialogbeforeclose event should prevent dialog from closing");
325 element.remove();
326 });
327
328 // #8789 and #8838
329 asyncTest("ensure dialog's container doesn't scroll on resize and focus", function() {
330 expect(2);
331
332 var element = $("#dialog1").dialog(),
333 initialScroll = $(window).scrollTop();
334 element.dialog("option", "height", 600);
335 equal($(window).scrollTop(), initialScroll, "scroll hasn't moved after height change");
336 setTimeout( function(){
337 $(".ui-dialog-titlebar-close").simulate("mousedown");
338 equal($(window).scrollTop(), initialScroll, "scroll hasn't moved after focus moved to dialog");
339 element.dialog("destroy");
340 start();
341 }, 500);
342 });
343
344 test("#5184: isOpen in dialogclose event is true", function() {
345 expect( 3 );
346
347 var element = $( "<div></div>" ).dialog({
348 close: function() {
349 ok( !element.dialog("isOpen"), "dialog is not open during close" );
350 }
351 });
352 ok( element.dialog("isOpen"), "dialog is open after init" );
353 element.dialog( "close" );
354 ok( !element.dialog("isOpen"), "dialog is not open after close" );
355 element.remove();
356 });
357
358 test("ensure dialog keeps focus when clicking modal overlay", function() {
359 expect( 2 );
360
361 var element = $( "<div></div>" ).dialog({
362 modal: true
363 });
364 ok( $(":focus").closest(".ui-dialog").length, "focus is in dialog" );
365 $(".ui-widget-overlay").simulate("mousedown");
366 ok( $(":focus").closest(".ui-dialog").length, "focus is still in dialog" );
367 element.remove();
368 });
369
370 })(jQuery);

  ViewVC Help
Powered by ViewVC 1.1.20