diff options
author | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2012-11-09 18:26:30 +0100 |
---|---|---|
committer | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2012-11-26 10:26:12 +0100 |
commit | 6edce867339c5808eda428fa2566aa40da4b0202 (patch) | |
tree | fcef6371f225cb00aa25e985b7fb88860f9f2bd6 | |
parent | f7d3a51589b30fd1be59339ca65b0e4bc6cfac8f (diff) | |
download | jquery-ui-6edce867339c5808eda428fa2566aa40da4b0202.tar.gz jquery-ui-6edce867339c5808eda428fa2566aa40da4b0202.zip |
Dialog: Remove attroperty workaround for title attribute. Make the default null, as it should be. No back-compat, as the behaviour doesn't change.
-rw-r--r-- | tests/unit/dialog/dialog_common.js | 2 | ||||
-rw-r--r-- | tests/unit/dialog/dialog_options.js | 42 | ||||
-rw-r--r-- | ui/jquery.ui.dialog.js | 9 |
3 files changed, 28 insertions, 25 deletions
diff --git a/tests/unit/dialog/dialog_common.js b/tests/unit/dialog/dialog_common.js index fb29838b7..47fff1013 100644 --- a/tests/unit/dialog/dialog_common.js +++ b/tests/unit/dialog/dialog_common.js @@ -23,7 +23,7 @@ TestHelpers.commonWidgetTests( "dialog", { }, resizable: true, show: null, - title: '', + title: null, width: 300, // callbacks diff --git a/tests/unit/dialog/dialog_options.js b/tests/unit/dialog/dialog_options.js index 331230318..899dc1df6 100644 --- a/tests/unit/dialog/dialog_options.js +++ b/tests/unit/dialog/dialog_options.js @@ -415,37 +415,45 @@ test("resizable", function() { el.remove(); }); -test("title", function() { - expect(9); +test( "title", function() { + expect( 11 ); function titleText() { - return el.dialog('widget').find(".ui-dialog-title").html(); + return el.dialog('widget').find( ".ui-dialog-title" ).html(); } - var el = $('<div></div>').dialog(); + var el = $( '<div></div>' ).dialog(); // some browsers return a non-breaking space and some return " " // so we generate a non-breaking space for comparison - equal(titleText(), $( "<span> </span>" ).html(), "[default]"); - equal(el.dialog("option", "title"), "", "option not changed"); + equal( titleText(), $( "<span> </span>" ).html(), "[default]" ); + equal( el.dialog( "option", "title" ), null, "option not changed" ); + el.remove(); + + el = $( '<div title="foo">' ).dialog(); + equal( titleText(), "foo", "title in element attribute" ); + equal( el.dialog( "option", "title"), "foo", "option updated from attribute" ); el.remove(); - el = $('<div title="foo">').dialog(); - equal(titleText(), "foo", "title in element attribute"); - equal(el.dialog("option", "title"), "foo", "option updated from attribute"); + el = $( '<div></div>' ).dialog({ title: 'foo' }); + equal( titleText(), "foo", "title in init options" ); + equal( el.dialog("option", "title"), "foo", "opiton set from options hash" ); el.remove(); - el = $('<div></div>').dialog({ title: 'foo' }); - equal(titleText(), "foo", "title in init options"); - equal(el.dialog("option", "title"), "foo", "opiton set from options hash"); + el = $( '<div title="foo">' ).dialog({ title: 'bar' }); + equal( titleText(), "bar", "title in init options should override title in element attribute" ); + equal( el.dialog("option", "title"), "bar", "opiton set from options hash" ); el.remove(); - el = $('<div title="foo">').dialog({ title: 'bar' }); - equal(titleText(), "bar", "title in init options should override title in element attribute"); - equal(el.dialog("option", "title"), "bar", "opiton set from options hash"); + el = $( '<div></div>' ).dialog().dialog( 'option', 'title', 'foo' ); + equal( titleText(), 'foo', 'title after init' ); el.remove(); - el = $('<div></div>').dialog().dialog('option', 'title', 'foo'); - equal(titleText(), 'foo', 'title after init'); + // make sure attroperties are properly ignored - #5742 - .attr() might return a DOMElement + el = $( '<form><input name="title"></form>' ).dialog(); + // some browsers return a non-breaking space and some return " " + // so we get the text to normalize to the actual non-breaking space + equal( titleText(), $( "<span> </span>" ).html(), "[default]" ); + equal( el.dialog( "option", "title" ), null, "option not changed" ); el.remove(); }); diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index ab32219c2..451203cae 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -67,7 +67,7 @@ $.widget("ui.dialog", { }, resizable: true, show: null, - title: "", + title: null, width: 300, // callbacks @@ -85,16 +85,11 @@ $.widget("ui.dialog", { _create: function() { this.originalTitle = this.element.attr( "title" ); - // #5742 - .attr() might return a DOMElement - // TODO WTF? - if ( typeof this.originalTitle !== "string" ) { - this.originalTitle = ""; - } + this.options.title = this.options.title || this.originalTitle; this.oldPosition = { parent: this.element.parent(), index: this.element.parent().children().index( this.element ) }; - this.options.title = this.options.title || this.originalTitle; var that = this, options = this.options, |