Skip to content

Classes #1411

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 36 commits into from
Closed

Classes #1411

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
e07784e
Build: Add qunit-assert-classes plug-in for classes tests
arschmitz Feb 3, 2015
fb4c29a
Widget: Add classes option and _add/_remove/_toggleClass methods
arschmitz Dec 3, 2014
a8cfc30
Accordion: Add classes option
arschmitz Dec 3, 2014
4d2f48e
Autocomplete: Add classes option
arschmitz Feb 27, 2015
e781eb0
Dialog: Add classes option
arschmitz Dec 3, 2014
c18bd1e
Draggable: Add classes option
arschmitz Jan 1, 2015
414e84f
Droppable: Add classes option
arschmitz Jan 1, 2015
587d584
Menu: Add classes option
arschmitz Dec 3, 2014
8e8cfe9
Progressbar: Add classes option
arschmitz Dec 3, 2014
26a6b1c
Resizable: Add classes option
arschmitz Feb 27, 2015
28cb466
Selectable: Add classes option
arschmitz Feb 27, 2015
c5290db
Selectmenu: Add classes option
arschmitz Dec 3, 2014
bb9df28
Slider: Add classes option
arschmitz Dec 3, 2014
29117bd
Sortable: Add classes option
arschmitz Feb 24, 2015
d96236e
Spinner: Add classes option
arschmitz Feb 24, 2015
51a58f4
Tabs: Add classes option
arschmitz Dec 3, 2014
6f28564
Tooltip: Add classes option
arschmitz Dec 3, 2014
0d918c7
Accordion: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
b29cae3
Autocomplete: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
67e8433
Button: Use new has/lacksClasses assertions for all class checks
arschmitz Feb 3, 2015
495c46c
Dialog: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
3e411a4
Draggable: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
baecc23
Droppable: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
d7fc6ff
Effects: Use new has/lacksClasses assertions for all class checks
arschmitz Feb 3, 2015
452e642
Menu: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
06a81b2
Progressbar: Use new has/lacksClasses assertions for all class checks
arschmitz Mar 10, 2015
df4ee9d
Resizable: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
a8fd021
Selectable: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
fd7551c
Selectmenu: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
f641bb6
Slider: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
a671313
Sortable: Use new has/lacksClasses assertions for all class checks
arschmitz Feb 3, 2015
e5ce118
Spinner: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
32467d0
Tabs: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
1a9ec1e
Tooltip: Use new has/lacksClasses assertions for all class checks
arschmitz Jan 30, 2015
b08043d
Widget: Use new has/lacksClasses assertions for all class checks
arschmitz Feb 3, 2015
db66067
Droppable: Remove shopping cart demo
arschmitz Feb 11, 2015
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
3 changes: 3 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,9 @@ grunt.initConfig({
"qunit/qunit.css": "qunit/qunit/qunit.css",
"qunit/LICENSE.txt": "qunit/LICENSE.txt",

"qunit-assert-classes/qunit-assert-classes.js": "qunit-assert-classes/qunit-assert-classes.js",
"qunit-assert-classes/LICENSE.txt": "qunit-assert-classes/LICENSE",

"jquery-mousewheel/jquery.mousewheel.js": "jquery-mousewheel/jquery.mousewheel.js",
"jquery-mousewheel/LICENSE.txt": "jquery-mousewheel/LICENSE.txt",

Expand Down
1 change: 1 addition & 0 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"jquery-simulate": "1.0.0",
"jshint": "2.4.4",
"qunit": "1.17.1",
"qunit-assert-classes": "0.1.5",

"jquery-1.7.0": "jquery#1.7.0",
"jquery-1.7.1": "jquery#1.7.1",
Expand Down
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
6 changes: 4 additions & 2 deletions demos/droppable/accepted-elements.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@
$( "#draggable, #draggable-nonvalid" ).draggable();
$( "#droppable" ).droppable({
accept: "#draggable",
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
classes: {
"ui-droppable-active": "ui-state-active",
"ui-droppable-hover": "ui-state-hover"
},
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
Expand Down
8 changes: 6 additions & 2 deletions demos/droppable/photo-manager.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@
// let the trash be droppable, accepting the gallery items
$trash.droppable({
accept: "#gallery > li",
activeClass: "ui-state-highlight",
classes: {
"ui-droppable-active": "ui-state-highlight"
},
drop: function( event, ui ) {
deleteImage( ui.draggable );
}
Expand All @@ -56,7 +58,9 @@
// let the gallery be droppable as well, accepting items from the trash
$gallery.droppable({
accept: "#trash li",
activeClass: "custom-state-active",
classes: {
"ui-droppable-active": "custom-state-active"
},
drop: function( event, ui ) {
recycleImage( ui.draggable );
}
Expand Down
12 changes: 8 additions & 4 deletions demos/droppable/propagation.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@
$( "#draggable" ).draggable();

$( "#droppable, #droppable-inner" ).droppable({
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
classes: {
"ui-droppable-active": "ui-state-active",
"ui-droppable-hover": "ui-state-hover"
},
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
Expand All @@ -34,8 +36,10 @@

$( "#droppable2, #droppable2-inner" ).droppable({
greedy: true,
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
classes: {
"ui-droppable-active": "ui-state-active",
"ui-droppable-hover": "ui-state-hover"
},
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
Expand Down
6 changes: 4 additions & 2 deletions demos/droppable/revert.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@
$( "#draggable2" ).draggable({ revert: "invalid" });

$( "#droppable" ).droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
classes: {
"ui-droppable-active": "ui-state-active",
"ui-droppable-hover": "ui-state-hover"
},
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
Expand Down
94 changes: 0 additions & 94 deletions demos/droppable/shopping-cart.html

This file was deleted.

10 changes: 7 additions & 3 deletions demos/droppable/visual-feedback.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
$(function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
hoverClass: "ui-state-hover",
classes: {
"ui-droppable-hover": "ui-state-hover"
},
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
Expand All @@ -32,7 +34,9 @@
$( "#draggable2" ).draggable();
$( "#droppable2" ).droppable({
accept: "#draggable2",
activeClass: "ui-state-default",
classes: {
"ui-droppable-active": "ui-state-default"
},
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
Expand Down Expand Up @@ -66,7 +70,7 @@ <h3>Feedback on activating draggable:</h3>
</div>

<div class="demo-description">
<p>Change the droppable's appearance on hover, or when the droppable is active (an acceptable draggable is dropped on it). Use the <code>hoverClass</code> or <code>activeClass</code> options to specify respective classes.</p>
<p>Change the droppable's appearance on hover, or when the droppable is active (an acceptable draggable is dropped on it). Set the values of the <code>ui-droppable-hover</code> or <code>ui-droppable-active</code> properties on the <code>classes</code> option to specify the respective classes.</p>
</div>
</body>
</html>
22 changes: 22 additions & 0 deletions external/qunit-assert-classes/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2015 Alexander Schmitz

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

47 changes: 47 additions & 0 deletions external/qunit-assert-classes/qunit-assert-classes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
( function( QUnit ) {
function inArray( haystack, needle ) {
for ( var i = 0; i < haystack.length; i++ ) {
if ( haystack[ i ] === needle ) {
return true;
}
}
return false;
}
function check( element, classes, stateVal, message ) {
var i, result, classAttribute, elementClassArray,
classArray = classes.split( " " ),
missing = [],
found = [];

if ( element.jquery && element.length !== 1 ) {
throw( "Class checks can only be performed on a single element on a collection" );
}
element = element.jquery ? element[ 0 ] : element;
classAttribute = element.getAttribute( "class" );
message = message || "Element must " + ( stateVal? "" : "not " ) + "have classes";
if ( classAttribute ) {
elementClassArray = classAttribute.split( " " );
for( i = 0; i < classArray.length; i++ ) {
if ( !inArray( elementClassArray, classArray[ i ] ) ) {
missing.push( classArray[ i ] );
} else {
found.push( classArray[ i ] );
}
}
} else {
missing = classArray;
}

result = stateVal ? !missing.length : !found.length;
QUnit.push( result, classes, result ? classes : found.join( " " ), message );
}

QUnit.extend( QUnit.assert, {
hasClasses: function( element, classes, message ) {
check( element, classes, true, message );
},
lacksClasses: function( element, classes, message ) {
check( element, classes, false, message );
}
});
})( QUnit );
1 change: 1 addition & 0 deletions tests/unit/accordion/accordion.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<script src="../../../external/qunit/qunit.js"></script>
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
<script src="../testsuite.js"></script>
<script src="../../../external/qunit-assert-classes/qunit-assert-classes.js"></script>
<script>
TestHelpers.loadResources({
css: [ "core", "accordion" ],
Expand Down
5 changes: 5 additions & 0 deletions tests/unit/accordion/accordion_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ TestHelpers.commonWidgetTests( "accordion", {
defaults: {
active: 0,
animate: {},
classes: {
"ui-accordion-header": "ui-corner-top",
"ui-accordion-header-collapsed": "ui-corner-all",
"ui-accordion-content": "ui-corner-bottom"
},
collapsible: false,
disabled: false,
event: "click",
Expand Down
Loading