Skip to content

Commit 306764c

Browse files
committed
Widget: Added more unit tests.
1 parent edfc863 commit 306764c

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed

tests/unit/widget/widget.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ <h2 id="qunit-userAgent"></h2>
2626

2727
<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
2828

29+
<div id="widget-wrapper">
30+
<div id="widget"></div>
31+
</div>
32+
2933
</div>
3034

3135
</body>

tests/unit/widget/widget_core.js

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,4 +281,132 @@ test( ".widget() - overriden", function() {
281281
same( wrapper[0], $( "<div></div>" ).testWidget().testWidget( "widget" )[0] );
282282
});
283283

284+
test( "._trigger() - no event, no ui", function() {
285+
expect( 7 );
286+
var handlers = [];
287+
288+
$.widget( "ui.testWidget", {
289+
_create: function() {}
290+
});
291+
292+
$( "#widget" ).testWidget({
293+
foo: function( event, ui ) {
294+
same( event.type, "testwidgetfoo", "correct event type in callback" );
295+
same( ui, {}, "empty ui hash passed" );
296+
handlers.push( "callback" );
297+
}
298+
});
299+
$( document ).add( "#widget-wrapper" ).add( "#widget" )
300+
.bind( "testwidgetfoo", function( event, ui ) {
301+
same( ui, {}, "empty ui hash passed" );
302+
handlers.push( this );
303+
});
304+
same( $( "#widget" ).data( "testWidget" )._trigger( "foo" ), true,
305+
"_trigger returns true when event is not cancelled" );
306+
same( handlers, [
307+
$( "#widget" )[ 0 ],
308+
$( "#widget-wrapper" )[ 0 ],
309+
document,
310+
"callback"
311+
], "event bubbles and then invokes callback" );
312+
313+
$( document ).unbind( "testwidgetfoo" );
314+
});
315+
316+
test( "._trigger() - cancelled event", function() {
317+
expect( 3 );
318+
319+
$.widget( "ui.testWidget", {
320+
_create: function() {}
321+
});
322+
323+
$( "#widget" ).testWidget({
324+
foo: function( event, ui ) {
325+
ok( true, "callback invoked even if event is cancelled" );
326+
}
327+
})
328+
.bind( "testwidgetfoo", function( event, ui ) {
329+
ok( true, "event was triggered" );
330+
return false;
331+
});
332+
same( $( "#widget" ).data( "testWidget" )._trigger( "foo" ), false,
333+
"_trigger returns false when event is cancelled" );
334+
});
335+
336+
test( "._trigger() - cancelled callback", function() {
337+
$.widget( "ui.testWidget", {
338+
_create: function() {}
339+
});
340+
341+
$( "#widget" ).testWidget({
342+
foo: function( event, ui ) {
343+
return false;
344+
}
345+
});
346+
same( $( "#widget" ).data( "testWidget" )._trigger( "foo" ), false,
347+
"_trigger returns false when callback returns false" );
348+
});
349+
350+
test( "._trigger() - provide event and ui", function() {
351+
expect( 7 );
352+
353+
var originalEvent = $.Event( "originalTest" );
354+
$.widget( "ui.testWidget", {
355+
_create: function() {},
356+
testEvent: function() {
357+
var ui = {
358+
foo: "bar",
359+
baz: {
360+
qux: 5,
361+
quux: 20
362+
}
363+
};
364+
this._trigger( "foo", originalEvent, ui );
365+
same( ui, {
366+
foo: "notbar",
367+
baz: {
368+
qux: 10,
369+
quux: "jQuery"
370+
}
371+
}, "ui object modified" );
372+
}
373+
});
374+
$( "#widget" ).bind( "testwidgetfoo", function( event, ui ) {
375+
equal( event.originalEvent, originalEvent, "original event object passed" );
376+
same( ui, {
377+
foo: "bar",
378+
baz: {
379+
qux: 5,
380+
quux: 20
381+
}
382+
}, "ui hash passed" );
383+
ui.foo = "notbar";
384+
});
385+
$( "#widget-wrapper" ).bind( "testwidgetfoo", function( event, ui ) {
386+
equal( event.originalEvent, originalEvent, "original event object passed" );
387+
same( ui, {
388+
foo: "notbar",
389+
baz: {
390+
qux: 5,
391+
quux: 20
392+
}
393+
}, "modified ui hash passed" );
394+
ui.baz.qux = 10;
395+
});
396+
$( "#widget" ).testWidget({
397+
foo: function( event, ui ) {
398+
equal( event.originalEvent, originalEvent, "original event object passed" );
399+
same( ui, {
400+
foo: "notbar",
401+
baz: {
402+
qux: 10,
403+
quux: 20
404+
}
405+
}, "modified ui hash passed" );
406+
ui.baz.quux = "jQuery";
407+
}
408+
})
409+
.testWidget( "testEvent" );
410+
});
411+
284412
})( jQuery );

0 commit comments

Comments
 (0)