From 44ec979713c1bf7aff7284127e451ee1b88fb680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Sat, 4 Jul 2009 03:39:19 +0000 Subject: [PATCH] Widget factory: Convert falsy data values to an empty hash in _trigger. Fixes #4650: ui hash not always provided in events/callbacks. --- tests/unit/dialog/dialog_events.js | 34 +++++++++++++++--------------- ui/ui.core.js | 1 + 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/tests/unit/dialog/dialog_events.js b/tests/unit/dialog/dialog_events.js index f5356979c..ca325e99e 100644 --- a/tests/unit/dialog/dialog_events.js +++ b/tests/unit/dialog/dialog_events.js @@ -6,13 +6,15 @@ module("dialog: events"); test("open", function() { - expect(6); + expect(11); el = $("
"); 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 = $('
').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 = $('
').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 = $('
').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 = $('
').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 = $('
').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'); diff --git a/ui/ui.core.js b/ui/ui.core.js index eb0420c62..313074032 100644 --- a/ui/ui.core.js +++ b/ui/ui.core.js @@ -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