Skip to content
Permalink
Browse files

Widget factory: Convert falsy data values to an empty hash in _trigge…

…r. Fixes #4650: ui hash not always provided in events/callbacks.
  • Loading branch information
scottgonzalez committed Jul 4, 2009
1 parent b6bdbb4 commit 44ec979713c1bf7aff7284127e451ee1b88fb680
Showing with 18 additions and 17 deletions.
  1. +17 −17 tests/unit/dialog/dialog_events.js
  2. +1 −0 ui/ui.core.js
@@ -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 @@ test("open", function() {
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("resizeStop", function() {
});

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 @@ test("beforeclose", function() {
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');
@@ -352,6 +352,7 @@ $.widget.prototype = {

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

0 comments on commit 44ec979

Please sign in to comment.
You can’t perform that action at this time.