r2862 - Widget factory: Convert falsy data values to an empty hash in _trigger. Fixes #4650: ui ...
Author: scott.gonzalez
Date: Fri Jul 3 20:39:19 2009
New Revision: 2862
Modified:
trunk/tests/unit/dialog/dialog_events.js
trunk/ui/ui.core.js
Log:
Widget factory: Convert falsy data values to an empty hash in _trigger.
Fixes #4650: ui hash not always provided in events/callbacks.
Modified: trunk/tests/unit/dialog/dialog_events.js
==============================================================================
--- trunk/tests/unit/dialog/dialog_events.js (original)
+++ trunk/tests/unit/dialog/dialog_events.js Fri Jul 3 20:39:19 2009
@@ -6,13 +6,15 @@
module("dialog: events");
test("open", function() {
- expect(6);
+ expect(11);
el = $("<div></div>");
el.dialog({
open: function(ev, ui) {
ok(true, 'autoOpen: true fires open callback');
equals(this, el[0], "context of callback");
+ equals(ev.type, 'dialogopen', 'event type in callback');
+ same(ui, {}, 'ui hash in callback');
}
});
el.remove();
@@ -23,19 +25,15 @@
open: function(ev, ui) {
ok(true, '.dialog("open") fires open callback');
equals(this, el[0], "context of callback");
+ equals(ev.type, 'dialogopen', 'event type in callback');
+ same(ui, {}, 'ui hash in callback');
}
- });
- el.dialog("open");
- el.remove();
-
- el = $('<div></div>').dialog({
- autoOpen: false
- });
- el.bind('dialogopen', function(ev, ui) {
+ }).bind('dialogopen', function(ev, ui) {
ok(true, 'dialog("open") fires open event');
equals(this, el[0], 'context of event');
+ same(ui, {}, 'ui hash in event');
});
- el.dialog('open');
+ el.dialog("open");
el.remove();
});
@@ -132,32 +130,33 @@
});
test("close", function() {
- expect(4);
+ expect(7);
el = $('<div></div>').dialog({
close: function(ev, ui) {
ok(true, '.dialog("close") fires close callback');
equals(this, el[0], "context of callback");
+ equals(ev.type, 'dialogclose', 'event type in callback');
+ same(ui, {}, 'ui hash in callback');
}
- });
- el.dialog("close");
- el.remove();
-
- el = $('<div></div>').dialog().bind('dialogclose', function(ev, ui) {
+ }).bind('dialogclose', function(ev, ui) {
ok(true, '.dialog("close") fires dialogclose event');
equals(this, el[0], 'context of event');
+ same(ui, {}, 'ui hash in event');
});
el.dialog('close');
el.remove();
});
test("beforeclose", function() {
- expect(6);
+ expect(9);
el = $('<div></div>').dialog({
beforeclose: function(ev, ui) {
ok(true, '.dialog("close") fires beforeclose callback');
equals(this, el[0], "context of callback");
+ equals(ev.type, 'dialogbeforeclose', 'event type in callback');
+ same(ui, {}, 'ui hash in callback');
return false;
}
});
@@ -168,6 +167,7 @@
el = $('<div></div>').dialog().bind('dialogbeforeclose', function(ev, ui)
{
ok(true, '.dialog("close") triggers dialogbeforeclose event');
equals(this, el[0], "context of event");
+ same(ui, {}, 'ui hash in event');
return false;
});
el.dialog('close');
Modified: trunk/ui/ui.core.js
==============================================================================
--- trunk/ui/ui.core.js (original)
+++ trunk/ui/ui.core.js Fri Jul 3 20:39:19 2009
@@ -352,6 +352,7 @@
event = $.Event(event);
event.type = eventName;
+ data = data || {};
// copy original event properties over to the new event
// this would happen if we could call $.event.fix instead of $.Event