Skip to content

All: Classes Option #1369

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 47 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
891a7d9
Widget: add the _classes method.
petersendidit Oct 19, 2012
6a6446b
Tabs: use the _classes method.
petersendidit Oct 19, 2012
07f52c1
Dialog: use the _classes method.
petersendidit Apr 23, 2013
f8c5aea
Accordion: use the _classes method.
petersendidit Apr 23, 2013
544f9ff
Autocomplete: use the _classes method.
petersendidit Apr 24, 2013
3c52f19
Slider: use the _classes method.
petersendidit Apr 24, 2013
b1c0f22
Spinner: use the _classes method.
petersendidit Apr 24, 2013
43ec02b
Progressbar: use the _classes method.
petersendidit Apr 24, 2013
51d1d33
Menu: use the _classes method.
petersendidit Apr 25, 2013
0aa2e1f
Tooltip: use the _classes method.
petersendidit Apr 25, 2013
9562d7a
Selectmenu: use the _classes method.
petersendidit Aug 23, 2014
808bb7f
Widget: Process "classes" option during _setOption()
Sep 5, 2014
a813056
Widget: Avoid adding extra spaces to the result of this._classes(...)
Oct 23, 2014
330dc7e
Widget: Add tests for classes option setting
arschmitz Nov 5, 2014
157ba04
Autocomplete: Implement _elementsFromFromClassKey()
Sep 5, 2014
8c0b1ac
Accordion: Implementing _elementsFromClassKey()
Sep 5, 2014
dfaba1d
Dialog: Add support for setOption with classes
arschmitz Oct 15, 2014
af57abd
Menu: Add support for setOption with classes
arschmitz Oct 15, 2014
aa4bbb3
Progressbar: Add support for setOption with classes
arschmitz Oct 15, 2014
e59c360
Selectmenu: Add support for setOption with classes
arschmitz Oct 15, 2014
d93e475
Slider: Add support for setOption with classes
arschmitz Oct 15, 2014
31dcc86
Spinner: Add support for setOption with classes
arschmitz Oct 15, 2014
2a0b8eb
Tabs: Add support for setOption with classes
arschmitz Oct 15, 2014
69bdbfc
Tooltip: Add support for setOption with classes
arschmitz Oct 21, 2014
b238f36
Accordion: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
c31c9f1
Autocomplete: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
9ab23dc
Dialog: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
c5ada6d
Menu: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
98a2cc7
Progressbar: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
7c7acda
Slider: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
836feb5
Spinner: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
b97ff0e
Tabs: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
5dd9120
Tooltip: Update classes option to use empty string instead of null
arschmitz Oct 15, 2014
e183631
Dialog: Fix checking of $.uiBackcompat in tests
arschmitz Nov 5, 2014
7628f28
Tooltip: Update checking of $.uiBackcompat in tests
arschmitz Nov 5, 2014
cecd4e2
Dialog: Simplify tests for classes
arschmitz Nov 5, 2014
328308a
Accordion: Simplify tests for classes
arschmitz Nov 5, 2014
758ff6c
Menu: Simplify tests for classes
arschmitz Nov 5, 2014
21fbfa3
Progressbar: simplify tests for classes
arschmitz Nov 5, 2014
7382fd3
Selectmenu: Simplify tests for classes
arschmitz Nov 5, 2014
3ac52a8
Slider: Simplify tests for classes
arschmitz Nov 5, 2014
ab96209
Tabs: Simplify tests for classes
arschmitz Nov 5, 2014
0fec7d4
Selectmenu: Remove unneeded comment
arschmitz Nov 7, 2014
ef9ed64
Tooltip: Remove deprecated tooltip class replaces with classes option
arschmitz Nov 7, 2014
913edd3
Autocomplete: Remove use of deprecated tooltipClass option in demo
arschmitz Nov 7, 2014
a0b707b
Menu: Update for menu wrapper
arschmitz Nov 7, 2014
7a3eaa8
Menu: fix incorrect default classes value
arschmitz Nov 12, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion demos/autocomplete/combobox.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@
source: $.proxy( this, "_source" )
})
.tooltip({
tooltipClass: "ui-state-highlight"
classes: {
"ui-tooltip": "ui-state-highlight"
}
});

this._on( this.input, {
Expand Down
10 changes: 10 additions & 0 deletions tests/unit/accordion/accordion_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@ TestHelpers.commonWidgetTests( "accordion", {
defaults: {
active: 0,
animate: {},
classes: {
"ui-accordion": "",
"ui-accordion-header": "ui-corner-top",
"ui-accordion-header-active": "",
"ui-accordion-header-collapsed": "ui-corner-all",
"ui-accordion-content": "ui-corner-bottom",
"ui-accordion-content-active": "",
"ui-accordion-header-icon": "",
"ui-accordion-icons": ""
},
collapsible: false,
disabled: false,
event: "click",
Expand Down
22 changes: 15 additions & 7 deletions tests/unit/accordion/accordion_core.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,23 @@ module( "accordion: core", setupTeardown() );

$.each( { div: "#list1", ul: "#navigation", dl: "#accordion-dl" }, function( type, selector ) {
test( "markup structure: " + type, function() {
expect( 4 );
var element = $( selector ).accordion();
ok( element.hasClass( "ui-accordion" ), "main element is .ui-accordion" );
equal( element.find( ".ui-accordion-header" ).length, 3,
expect( 8 );
var element = $( selector ).accordion(),
headers = element.find( ".ui-accordion-header" ),
panels = element.find( ".ui-accordion-content" );

ok( element.is( ".ui-accordion.ui-widget" ), "main has proper classes" );
ok( headers.hasClass( "ui-corner-top" ), "header is .ui-corner-top" );
ok( !headers.eq( 0 ).hasClass( "ui-corner-all" ), "open header is not .ui-corner-all" );
ok( headers.eq( 1 ).hasClass( "ui-corner-all" ), "closed header is .ui-corner-all" );
ok( headers.next().is( ".ui-accordion-content.ui-widget-content.ui-corner-bottom" ),
"panel has proper classes" );

equal( headers.length, 3,
".ui-accordion-header elements exist, correct number" );
equal( element.find( ".ui-accordion-content" ).length, 3,
equal( panels.length, 3,
".ui-accordion-content elements exist, correct number" );
deepEqual( element.find( ".ui-accordion-header" ).next().get(),
element.find( ".ui-accordion-content" ).get(),
deepEqual( headers.next().get(), panels.get(),
"content panels come immediately after headers" );
});
});
Expand Down
8 changes: 7 additions & 1 deletion tests/unit/accordion/accordion_methods.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,16 @@ var equalHeight = TestHelpers.accordion.equalHeight,
module( "accordion: methods", setupTeardown() );

test( "destroy", function() {
expect( 1 );
expect( 2 );
domEqual( "#list1", function() {
$( "#list1" ).accordion().accordion( "destroy" );
});
// Animate
domEqual( "#list1", function() {
$( "#list1" ).accordion()
.accordion( "option", "active", 1 )
.accordion( "destroy" );
});
});

test( "enable/disable", function() {
Expand Down
5 changes: 5 additions & 0 deletions tests/unit/autocomplete/autocomplete_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ TestHelpers.commonWidgetTests( "autocomplete", {
defaults: {
appendTo: null,
autoFocus: false,
classes: {
"ui-autocomplete": "",
"ui-autocomplete-input": "",
"ui-autocomplete-loading": ""
},
delay: 300,
disabled: false,
messages: {
Expand Down
9 changes: 9 additions & 0 deletions tests/unit/autocomplete/autocomplete_core.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

module( "autocomplete: core" );

test( "markup structure", function() {
expect( 2 );
var element = $( "#autocomplete" ).autocomplete(),
menu = element.autocomplete( "widget" );

ok( element.hasClass( "ui-autocomplete-input" ), "main element is .ui-autocomplete-input" );
ok( menu.hasClass( "ui-autocomplete" ), "menu is .ui-autocomplete" );
});

test( "prevent form submit on enter when menu is active", function() {
expect( 2 );
var event,
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/dialog/dialog.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
<title>jQuery UI Dialog Test Suite</title>

<script src="../../jquery.js"></script>
<script>
$.uiBackCompat = false;
</script>
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
<script src="../../../external/qunit/qunit.js"></script>
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
Expand Down
14 changes: 13 additions & 1 deletion tests/unit/dialog/dialog_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,22 @@ TestHelpers.commonWidgetTests( "dialog", {
appendTo: "body",
autoOpen: true,
buttons: [],
classes: {
"ui-dialog": "ui-corner-all",
"ui-dialog-content": "",
"ui-dialog-titlebar": "ui-corner-all",
"ui-dialog-titlebar-close": "",
"ui-dialog-title": "",
"ui-dialog-buttons": "",
"ui-dialog-buttonpane": "",
"ui-dialog-buttonset": "",
"ui-dialog-dragging": "",
"ui-dialog-resizing": "",
"ui-widget-overlay": ""
},
closeOnEscape: true,
closeText: "Close",
disabled: false,
dialogClass: "",
draggable: true,
height: "auto",
hide: null,
Expand Down
56 changes: 56 additions & 0 deletions tests/unit/dialog/dialog_common_deprecated.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
TestHelpers.commonWidgetTests( "dialog", {
defaults: {
appendTo: "body",
autoOpen: true,
buttons: [],
classes: {
"ui-dialog": "ui-corner-all",
"ui-dialog-content": "",
"ui-dialog-titlebar": "ui-corner-all",
"ui-dialog-titlebar-close": "",
"ui-dialog-title": "",
"ui-dialog-buttons": "",
"ui-dialog-buttonpane": "",
"ui-dialog-buttonset": "",
"ui-dialog-dragging": "",
"ui-dialog-resizing": "",
"ui-widget-overlay": ""
},
closeOnEscape: true,
closeText: "close",
dialogClass: "",
disabled: false,
draggable: true,
height: "auto",
hide: null,
maxHeight: null,
maxWidth: null,
minHeight: 150,
minWidth: 150,
modal: false,
position: {
my: "center",
at: "center",
of: window,
collision: "fit",
using: $.ui.dialog.prototype.options.position.using
},
resizable: true,
show: null,
title: null,
width: 300,

// callbacks
beforeClose: null,
close: null,
create: null,
drag: null,
dragStart: null,
dragStop: null,
focus: null,
open: null,
resize: null,
resizeStart: null,
resizeStop: null
}
});
31 changes: 31 additions & 0 deletions tests/unit/dialog/dialog_core.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,37 @@
// TODO add teardown callback to remove dialogs
module("dialog: core");

test( "markup structure", function() {
expect( 7 );
var element = $("<div></div>").dialog({
buttons: [{
text: "Ok",
click: $.noop
}]
}),
widget = element.dialog( "widget" ),
titlebar = widget.find( ".ui-dialog-titlebar" ),
close = titlebar.find( "button" ),
buttonpane = widget.find( ".ui-dialog-buttonpane" );

ok( widget.is( ".ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-dialog-buttons" ),
"Widget has proper classes" );

ok( titlebar.is( ".ui-dialog-titlebar.ui-corner-all.ui-widget-header"),
"Titlebar has proper classes");

ok( titlebar.find( ".ui-dialog-title" ).length, "Title is .ui-dialog-title" );

ok( close.hasClass( "ui-dialog-titlebar-close" ), "Close button is .ui-dialog-titlebar-close" );

ok( element.is( ".ui-dialog-content.ui-widget-content" ), "Element is .ui-widget-content" );

ok( buttonpane.is( ".ui-dialog-buttonpane.ui-widget-content" ),
"Buttonpane is .ui-widget-content" );
ok( buttonpane.find( ".ui-dialog-buttonset" ).length, "buttonset is .ui-dialog-buttonset" );

});

test("title id", function() {
expect(1);

Expand Down
65 changes: 65 additions & 0 deletions tests/unit/dialog/dialog_deprecated.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Dialog Test Suite</title>

<script src="../../jquery.js"></script>
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
<script src="../../../external/qunit/qunit.js"></script>
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
<script src="../testsuite.js"></script>
<script>
TestHelpers.loadResources({
css: [ "core", "dialog" ],
js: [
"ui/core.js",
"ui/widget.js",
"ui/position.js",
"ui/mouse.js",
"ui/draggable.js",
"ui/resizable.js",
"ui/button.js",
"ui/effect.js",
"ui/effect-blind.js",
"ui/effect-clip.js",
"ui/effect-explode.js",
"ui/dialog.js"
]
});
</script>

<script src="dialog_common_derecated.js"></script>
<script src="dialog_core.js"></script>
<script src="dialog_events.js"></script>
<script src="dialog_methods.js"></script>
<script src="dialog_options.js"></script>
<script src="dialog_deprecated.js"></script>
<script src="dialog_test_helpers.js"></script>

<script src="../swarminject.js"></script>
</head>
<body>

<div id="qunit"></div>
<div id="qunit-fixture">
<div id="dialog1"></div>
<div id="dialog2"></div>
<div id="form-dialog" title="Profile Information">
<!-- create a spacer to ensure there's enough space to scroll -->
<div style="height: 250px;">...</div>
<fieldset>
<legend>Please share some personal information</legend>
<label for="favorite-animal">Your favorite animal</label><input id="favorite-animal">
<label for="favorite-color">Your favorite color</label><input id="favorite-color">
</fieldset>
<div role="group" aria-describedby="section2">
<p id="section2">Some more (optional) information</p>
<label for="favorite-food">Favorite food</label><input id="favorite-food">
</div>
</div>
<div class="wrap" id="wrap1"></div>
<div class="wrap" id="wrap2"></div>
</div>
</body>
</html>
31 changes: 31 additions & 0 deletions tests/unit/dialog/dialog_deprecated.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* dialog_deprecated.js
*/
(function( $ ) {

module( "dialog (deprecated): options" );

test( "dialogClass", function() {
expect( 6 );

var element = $( "<div></div>" ).dialog(),
widget = element.dialog( "widget" );
equal( widget.is( ".foo" ), false, "dialogClass not specified. class not added" );
element.remove();

element = $( "<div></div>" ).dialog({ dialogClass: "foo" });
widget = element.dialog( "widget" );
equal( widget.is( ".foo" ), true, "dialogClass in init. foo class added");
element.dialog( "option", "dialogClass", "foobar" );
equal( widget.is( ".foo" ), false, "dialogClass changed, previous one was removed" );
equal( widget.is( ".foobar" ), true, "dialogClass changed, new one was added" );
element.remove();

element = $( "<div></div>" ).dialog({ dialogClass: "foo bar" });
widget = element.dialog( "widget" );
equal( widget.is( ".foo" ), true, "dialogClass in init, two classes. foo class added" );
equal( widget.is( ".bar" ), true, "dialogClass in init, two classes. bar class added" );
element.remove();
});

})( jQuery );
10 changes: 9 additions & 1 deletion tests/unit/dialog/dialog_methods.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ test("init", function() {
});

test("destroy", function() {
expect( 17 );
expect( 18 );

var element, element2;

Expand All @@ -49,6 +49,14 @@ test("destroy", function() {
equal( dialog.parent()[ 0 ], $( "#qunit-fixture" )[ 0 ] );
equal( dialog.index(), 2 );
});
domEqual( "#dialog2", function() {
$( "#dialog2" ).dialog({
buttons: [{
text: "Ok",
click: $.noop
}]
}).dialog( "destroy" );
}, "Buttons");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this assertion accomplish?

Also missing space after the string.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe @petersendidit can answer this i'm not sure and he added it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At one point I was on a quest to write tests to make sure that all widgets correctly cleaned up after themselves when they were destroyed. There were a few widgets that didn't correctly remove all of their classes. Can't remember if dialog was one of them or not.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the other two assertions don't set the buttons option and that adds more markup, keeping this addition is fine.


// Ensure dimensions are restored (#8119)
$( "#dialog1" ).show().css({
Expand Down
20 changes: 0 additions & 20 deletions tests/unit/dialog/dialog_options.js
Original file line number Diff line number Diff line change
Expand Up @@ -224,26 +224,6 @@ test("closeText", function() {
element.remove();
});

test("dialogClass", function() {
expect( 6 );

var element = $("<div></div>").dialog();
equal(element.dialog("widget").is(".foo"), false, "dialogClass not specified. foo class added");
element.remove();

element = $("<div></div>").dialog({ dialogClass: "foo" });
equal(element.dialog("widget").is(".foo"), true, "dialogClass in init. foo class added");
element.dialog( "option", "dialogClass", "foobar" );
equal( element.dialog("widget").is(".foo"), false, "dialogClass changed, previous one was removed" );
equal( element.dialog("widget").is(".foobar"), true, "dialogClass changed, new one was added" );
element.remove();

element = $("<div></div>").dialog({ dialogClass: "foo bar" });
equal(element.dialog("widget").is(".foo"), true, "dialogClass in init, two classes. foo class added");
equal(element.dialog("widget").is(".bar"), true, "dialogClass in init, two classes. bar class added");
element.remove();
});

test("draggable", function() {
expect(4);

Expand Down
8 changes: 8 additions & 0 deletions tests/unit/menu/menu_common.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
TestHelpers.commonWidgetTests( "menu", {
defaults: {
classes: {
"ui-menu": "",
"ui-menu-icons": "",
"ui-menu-icon": "",
"ui-menu-item": "",
"ui-menu-item-wrapper": "",
"ui-menu-divider": ""
},
disabled: false,
icons: {
submenu: "ui-icon-caret-1-e"
Expand Down
Loading