Skip to content

Commit d2a06c3

Browse files
petersendiditarschmitz
authored andcommitted
Dialog: use the _classes method.
Deprecate dialogClass. Fixes #7053
1 parent 5a9ac3d commit d2a06c3

File tree

8 files changed

+264
-46
lines changed

8 files changed

+264
-46
lines changed

tests/unit/dialog/dialog_common.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,22 @@ TestHelpers.commonWidgetTests( "dialog", {
33
appendTo: "body",
44
autoOpen: true,
55
buttons: [],
6+
classes: {
7+
"ui-dialog": "ui-corner-all",
8+
"ui-dialog-content": null,
9+
"ui-dialog-titlebar": "ui-corner-all",
10+
"ui-dialog-titlebar-close": null,
11+
"ui-dialog-title": null,
12+
"ui-dialog-buttons": null,
13+
"ui-dialog-buttonpane": null,
14+
"ui-dialog-buttonset": null,
15+
"ui-dialog-dragging": null,
16+
"ui-dialog-resizing": null,
17+
"ui-widget-overlay": null
18+
},
619
closeOnEscape: true,
720
closeText: "Close",
821
disabled: false,
9-
dialogClass: "",
1022
draggable: true,
1123
height: "auto",
1224
hide: null,
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
TestHelpers.commonWidgetTests( "dialog", {
2+
defaults: {
3+
appendTo: "body",
4+
autoOpen: true,
5+
buttons: [],
6+
classes: {
7+
"ui-dialog": "ui-corner-all",
8+
"ui-dialog-content": null,
9+
"ui-dialog-titlebar": "ui-corner-all",
10+
"ui-dialog-titlebar-close": null,
11+
"ui-dialog-title": null,
12+
"ui-dialog-buttons": null,
13+
"ui-dialog-buttonpane": null,
14+
"ui-dialog-buttonset": null,
15+
"ui-dialog-dragging": null,
16+
"ui-dialog-resizing": null,
17+
"ui-widget-overlay": null
18+
},
19+
closeOnEscape: true,
20+
closeText: "close",
21+
dialogClass: "",
22+
disabled: false,
23+
draggable: true,
24+
height: "auto",
25+
hide: null,
26+
maxHeight: null,
27+
maxWidth: null,
28+
minHeight: 150,
29+
minWidth: 150,
30+
modal: false,
31+
position: {
32+
my: "center",
33+
at: "center",
34+
of: window,
35+
collision: "fit",
36+
using: $.ui.dialog.prototype.options.position.using
37+
},
38+
resizable: true,
39+
show: null,
40+
title: null,
41+
width: 300,
42+
43+
// callbacks
44+
beforeClose: null,
45+
close: null,
46+
create: null,
47+
drag: null,
48+
dragStart: null,
49+
dragStop: null,
50+
focus: null,
51+
open: null,
52+
resize: null,
53+
resizeStart: null,
54+
resizeStop: null
55+
}
56+
});

tests/unit/dialog/dialog_core.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,41 @@
77
// TODO add teardown callback to remove dialogs
88
module("dialog: core");
99

10+
test( "markup structure", function() {
11+
expect( 15 );
12+
var element = $("<div></div>").dialog({
13+
buttons: [{
14+
text: "Ok",
15+
click: $.noop
16+
}]
17+
}),
18+
widget = element.dialog( "widget" ),
19+
titlebar = widget.find( ".ui-dialog-titlebar" ),
20+
close = titlebar.find( "button" ),
21+
buttonpane = widget.find( ".ui-dialog-buttonpane" );
22+
23+
ok( widget.hasClass( "ui-dialog" ), "widget is .ui-dialog" );
24+
ok( widget.hasClass( "ui-widget" ), "widget is .ui-widget" );
25+
ok( widget.hasClass( "ui-widget-content" ), "widget is .ui-widget-content" );
26+
ok( widget.hasClass( "ui-corner-all" ), "widget is .ui-corner-all" );
27+
ok( widget.hasClass( "ui-dialog-buttons" ), "widget is .ui-dialog-buttons" );
28+
29+
ok( titlebar.hasClass( "ui-dialog-titlebar" ), "titlebar is .ui-dialog-titlebar" );
30+
ok( titlebar.hasClass( "ui-corner-all" ), "titlebar is .ui-corner-all" );
31+
ok( titlebar.hasClass( "ui-widget-header" ), "titlebar is .ui-widget-header" );
32+
ok( titlebar.find( ".ui-dialog-title" ).length, "title is .ui-dialog-title" );
33+
34+
ok( close.hasClass( "ui-dialog-titlebar-close" ), "close button is .ui-dialog-titlebar-close" );
35+
36+
ok( element.hasClass( "ui-dialog-content" ), "element is .ui-dialog-content" );
37+
ok( element.hasClass( "ui-widget-content" ), "element is .ui-widget-content" );
38+
39+
ok( buttonpane.hasClass( "ui-dialog-buttonpane" ), "buttonpane is .ui-dialog-buttonpane" );
40+
ok( buttonpane.hasClass( "ui-widget-content" ), "buttonpane is .ui-widget-content" );
41+
ok( buttonpane.find( ".ui-dialog-buttonset" ).length, "buttonset is .ui-dialog-buttonset" );
42+
43+
});
44+
1045
test("title id", function() {
1146
expect(1);
1247

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>jQuery UI Dialog Test Suite</title>
6+
7+
<script src="../../jquery.js"></script>
8+
<script>
9+
$.uiBackCompat = true;
10+
</script>
11+
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
12+
<script src="../../../external/qunit/qunit.js"></script>
13+
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
14+
<script src="../testsuite.js"></script>
15+
<script>
16+
TestHelpers.loadResources({
17+
css: [ "core", "dialog" ],
18+
js: [
19+
"ui/core.js",
20+
"ui/widget.js",
21+
"ui/position.js",
22+
"ui/mouse.js",
23+
"ui/draggable.js",
24+
"ui/resizable.js",
25+
"ui/button.js",
26+
"ui/effect.js",
27+
"ui/effect-blind.js",
28+
"ui/effect-clip.js",
29+
"ui/effect-explode.js",
30+
"ui/dialog.js"
31+
]
32+
});
33+
</script>
34+
35+
<script src="dialog_common_derecated.js"></script>
36+
<script src="dialog_core.js"></script>
37+
<script src="dialog_events.js"></script>
38+
<script src="dialog_methods.js"></script>
39+
<script src="dialog_options.js"></script>
40+
<script src="dialog_deprecated.js"></script>
41+
<script src="dialog_test_helpers.js"></script>
42+
43+
<script src="../swarminject.js"></script>
44+
</head>
45+
<body>
46+
47+
<div id="qunit"></div>
48+
<div id="qunit-fixture">
49+
<div id="dialog1"></div>
50+
<div id="dialog2"></div>
51+
<div id="form-dialog" title="Profile Information">
52+
<!-- create a spacer to ensure there's enough space to scroll -->
53+
<div style="height: 250px;">...</div>
54+
<fieldset>
55+
<legend>Please share some personal information</legend>
56+
<label for="favorite-animal">Your favorite animal</label><input id="favorite-animal">
57+
<label for="favorite-color">Your favorite color</label><input id="favorite-color">
58+
</fieldset>
59+
<div role="group" aria-describedby="section2">
60+
<p id="section2">Some more (optional) information</p>
61+
<label for="favorite-food">Favorite food</label><input id="favorite-food">
62+
</div>
63+
</div>
64+
<div class="wrap" id="wrap1"></div>
65+
<div class="wrap" id="wrap2"></div>
66+
</div>
67+
</body>
68+
</html>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* dialog_deprecated.js
3+
*/
4+
(function( $ ) {
5+
6+
module( "dialog (deprecated): options" );
7+
8+
test( "dialogClass", function() {
9+
expect( 6 );
10+
11+
var element = $( "<div></div>" ).dialog(),
12+
widget = element.dialog( "widget" );
13+
equal( widget.is( ".foo" ), false, "dialogClass not specified. class not added" );
14+
element.remove();
15+
16+
element = $( "<div></div>" ).dialog({ dialogClass: "foo" });
17+
widget = element.dialog( "widget" );
18+
equal( widget.is( ".foo" ), true, "dialogClass in init. foo class added");
19+
element.dialog( "option", "dialogClass", "foobar" );
20+
equal( widget.is( ".foo" ), false, "dialogClass changed, previous one was removed" );
21+
equal( widget.is( ".foobar" ), true, "dialogClass changed, new one was added" );
22+
element.remove();
23+
24+
element = $( "<div></div>" ).dialog({ dialogClass: "foo bar" });
25+
widget = element.dialog( "widget" );
26+
equal( widget.is( ".foo" ), true, "dialogClass in init, two classes. foo class added" );
27+
equal( widget.is( ".bar" ), true, "dialogClass in init, two classes. bar class added" );
28+
element.remove();
29+
});
30+
31+
})( jQuery );

tests/unit/dialog/dialog_methods.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ test("init", function() {
3434
});
3535

3636
test("destroy", function() {
37-
expect( 17 );
37+
expect( 18 );
3838

3939
var element, element2;
4040

@@ -49,6 +49,14 @@ test("destroy", function() {
4949
equal( dialog.parent()[ 0 ], $( "#qunit-fixture" )[ 0 ] );
5050
equal( dialog.index(), 2 );
5151
});
52+
domEqual( "#dialog2", function() {
53+
$( "#dialog2" ).dialog({
54+
buttons: [{
55+
text: "Ok",
56+
click: $.noop
57+
}]
58+
}).dialog( "destroy" );
59+
}, "Buttons");
5260

5361
// Ensure dimensions are restored (#8119)
5462
$( "#dialog1" ).show().css({

tests/unit/dialog/dialog_options.js

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -224,26 +224,6 @@ test("closeText", function() {
224224
element.remove();
225225
});
226226

227-
test("dialogClass", function() {
228-
expect( 6 );
229-
230-
var element = $("<div></div>").dialog();
231-
equal(element.dialog("widget").is(".foo"), false, "dialogClass not specified. foo class added");
232-
element.remove();
233-
234-
element = $("<div></div>").dialog({ dialogClass: "foo" });
235-
equal(element.dialog("widget").is(".foo"), true, "dialogClass in init. foo class added");
236-
element.dialog( "option", "dialogClass", "foobar" );
237-
equal( element.dialog("widget").is(".foo"), false, "dialogClass changed, previous one was removed" );
238-
equal( element.dialog("widget").is(".foobar"), true, "dialogClass changed, new one was added" );
239-
element.remove();
240-
241-
element = $("<div></div>").dialog({ dialogClass: "foo bar" });
242-
equal(element.dialog("widget").is(".foo"), true, "dialogClass in init, two classes. foo class added");
243-
equal(element.dialog("widget").is(".bar"), true, "dialogClass in init, two classes. bar class added");
244-
element.remove();
245-
});
246-
247227
test("draggable", function() {
248228
expect(4);
249229

0 commit comments

Comments
 (0)