Skip to content

Commit ed52ec2

Browse files
committed
Dialog: Add classes option
1 parent 63563dc commit ed52ec2

File tree

8 files changed

+297
-113
lines changed

8 files changed

+297
-113
lines changed

tests/unit/dialog/dialog.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
<title>jQuery UI Dialog Test Suite</title>
66

77
<script src="../../jquery.js"></script>
8+
<script>
9+
$.uiBackCompat = false;
10+
</script>
811
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
912
<script src="../../../external/qunit/qunit.js"></script>
1013
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>

tests/unit/dialog/dialog_common.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ TestHelpers.commonWidgetTests( "dialog", {
33
appendTo: "body",
44
autoOpen: true,
55
buttons: [],
6+
classes: {
7+
"ui-dialog": "ui-corner-all",
8+
"ui-dialog-titlebar": "ui-corner-all"
9+
},
610
closeOnEscape: true,
711
closeText: "Close",
812
disabled: false,
9-
dialogClass: "",
1013
draggable: true,
1114
height: "auto",
1215
hide: null,
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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-titlebar": "ui-corner-all"
9+
},
10+
closeOnEscape: true,
11+
closeText: "close",
12+
dialogClass: "",
13+
disabled: false,
14+
draggable: true,
15+
height: "auto",
16+
hide: null,
17+
maxHeight: null,
18+
maxWidth: null,
19+
minHeight: 150,
20+
minWidth: 150,
21+
modal: false,
22+
position: {
23+
my: "center",
24+
at: "center",
25+
of: window,
26+
collision: "fit",
27+
using: $.ui.dialog.prototype.options.position.using
28+
},
29+
resizable: true,
30+
show: null,
31+
title: null,
32+
width: 300,
33+
34+
// callbacks
35+
beforeClose: null,
36+
close: null,
37+
create: null,
38+
drag: null,
39+
dragStart: null,
40+
dragStop: null,
41+
focus: null,
42+
open: null,
43+
resize: null,
44+
resizeStart: null,
45+
resizeStop: null
46+
}
47+
});

tests/unit/dialog/dialog_core.js

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

10+
test( "markup structure", function() {
11+
expect( 7 );
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.is( ".ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-dialog-buttons" ),
24+
"Widget has proper classes" );
25+
26+
ok( titlebar.is( ".ui-dialog-titlebar.ui-corner-all.ui-widget-header"),
27+
"Titlebar has proper classes");
28+
29+
ok( titlebar.find( ".ui-dialog-title" ).length, "Title is .ui-dialog-title" );
30+
31+
ok( close.hasClass( "ui-dialog-titlebar-close" ), "Close button is .ui-dialog-titlebar-close" );
32+
33+
ok( element.is( ".ui-dialog-content.ui-widget-content" ), "Element is .ui-widget-content" );
34+
35+
ok( buttonpane.is( ".ui-dialog-buttonpane.ui-widget-content" ),
36+
"Buttonpane is .ui-widget-content" );
37+
ok( buttonpane.find( ".ui-dialog-buttonset" ).length, "buttonset is .ui-dialog-buttonset" );
38+
39+
});
40+
1041
test("title id", function() {
1142
expect(1);
1243

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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+
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
9+
<script src="../../../external/qunit/qunit.js"></script>
10+
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
11+
<script src="../testsuite.js"></script>
12+
<script>
13+
TestHelpers.loadResources({
14+
css: [ "core", "dialog" ],
15+
js: [
16+
"ui/core.js",
17+
"ui/widget.js",
18+
"ui/position.js",
19+
"ui/mouse.js",
20+
"ui/draggable.js",
21+
"ui/resizable.js",
22+
"ui/button.js",
23+
"ui/effect.js",
24+
"ui/effect-blind.js",
25+
"ui/effect-clip.js",
26+
"ui/effect-explode.js",
27+
"ui/dialog.js"
28+
]
29+
});
30+
</script>
31+
32+
<script src="dialog_common_derecated.js"></script>
33+
<script src="dialog_core.js"></script>
34+
<script src="dialog_events.js"></script>
35+
<script src="dialog_methods.js"></script>
36+
<script src="dialog_options.js"></script>
37+
<script src="dialog_deprecated.js"></script>
38+
<script src="dialog_test_helpers.js"></script>
39+
40+
<script src="../swarminject.js"></script>
41+
</head>
42+
<body>
43+
44+
<div id="qunit"></div>
45+
<div id="qunit-fixture">
46+
<div id="dialog1"></div>
47+
<div id="dialog2"></div>
48+
<div id="form-dialog" title="Profile Information">
49+
<!-- create a spacer to ensure there's enough space to scroll -->
50+
<div style="height: 250px;">...</div>
51+
<fieldset>
52+
<legend>Please share some personal information</legend>
53+
<label for="favorite-animal">Your favorite animal</label><input id="favorite-animal">
54+
<label for="favorite-color">Your favorite color</label><input id="favorite-color">
55+
</fieldset>
56+
<div role="group" aria-describedby="section2">
57+
<p id="section2">Some more (optional) information</p>
58+
<label for="favorite-food">Favorite food</label><input id="favorite-food">
59+
</div>
60+
</div>
61+
<div class="wrap" id="wrap1"></div>
62+
<div class="wrap" id="wrap2"></div>
63+
</div>
64+
</body>
65+
</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_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)