Skip to content
Permalink
Browse files

Dialog: Remove attroperty workaround for title attribute. Make the de…

…fault null, as it should be. No back-compat, as the behaviour doesn't change.
  • Loading branch information...
jzaefferer committed Nov 9, 2012
1 parent f7d3a51 commit 6edce867339c5808eda428fa2566aa40da4b0202
Showing with 28 additions and 25 deletions.
  1. +1 −1 tests/unit/dialog/dialog_common.js
  2. +25 −17 tests/unit/dialog/dialog_options.js
  3. +2 −7 ui/jquery.ui.dialog.js
@@ -23,7 +23,7 @@ TestHelpers.commonWidgetTests( "dialog", {
},
resizable: true,
show: null,
title: '',
title: null,
width: 300,

// callbacks
@@ -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 "&nbsp;"
// so we generate a non-breaking space for comparison
equal(titleText(), $( "<span>&#160;</span>" ).html(), "[default]");
equal(el.dialog("option", "title"), "", "option not changed");
equal( titleText(), $( "<span>&#160;</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 "&nbsp;"
// so we get the text to normalize to the actual non-breaking space
equal( titleText(), $( "<span>&#160;</span>" ).html(), "[default]" );
equal( el.dialog( "option", "title" ), null, "option not changed" );
el.remove();
});

@@ -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,

0 comments on commit 6edce86

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