QUnit Classes assertion plugin
A set of assertions for checking thats an element has ( or does not have ) any number of classes. The check is order independent and gives a diff of the expected classes. Accepts either a single Dom node or a jQuery object containing exactly one element.
NOTE: While this accepts jQuery objects it has no dependency on jQuery
Usage
assert . hasClasses ( element , classes [ , message ] ) ;
assert . lacksClasses ( element , classes [ , message ] ) ;
assert . hasClassesStrict ( element , classes [ , message ] ) ;
assert . hasClassRegex ( element , RexExp [ , message ] ) ;
assert . lacksClassRegex ( element , RexExp [ , message ] ) ;
assert . hasClassStart ( element , start [ , message ] ) ;
assert . lacksClassStart ( element , start [ , message ] ) ;
assert . hasClassPartial ( element , partial [ , message ] ) ;
assert . lacksClassPartial ( element , partial [ , message ] ) ;
assert . lacksAllClasses ( element [ , message ] ) ;
assert . hasSomeClass ( element [ , message ] ) ;
Where:
element
: a jQuery object or DOM Element ( must be a single element, collections not allowed )
classes
: a space seperated string of classes
message
: a custom message to replace default message of "Element must (not) have classes"
RegExp
: a valid regular expression to be used to match against individual class names
start
: a string that should match the begining of any class
partial
: a string of a partial class name that should be matched against any of the classes
Examples
Example 1: hasClasses with DOM Element
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasClasses unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . hasClasses ( element , " class1 class2 " ) ;
assert . hasClasses ( element , " class3 " , " custom message " ) ;
} ) ;
Example 2: lacksClasses with jQuery object
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example lacksClasses unit test ' , function ( assert ) {
var element = $ ( " #test " ) ;
assert . lacksClasses ( element , " missing-class " ) ;
assert . lacksClasses ( element , " class1 missing-class-2 " , " custom message " ) ;
} ) ;
Example 3: hasClassesStrict
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasClassesStrict unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . hasClassesStrict ( element , " class1 class2 " ) ;
assert . hasClassesStrict ( element , " class1 " , " custom message " ) ;
} ) ;
Example 4: hasClassRegex
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasClassesRegex unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . hasClassRegex ( element , / ^ ( clas ) ( [ a-z ] ) {1} ( [ 0-9 ] ) $ / ) ;
assert . hasClassRegex ( element , / ^ ( ( [ a-z ] ) {5} ( [ 0-9 ] | [ 0-9 ] \s ) ) {2} $ / , " custom message " ) ;
} ) ;
Example 5: lacksClassRegex
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasClassesRegex unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . lacksClassRegex ( element , / boom / ) ;
assert . lacksClassRegex ( element , / ^ ( class ) / , " custom message " ) ;
} ) ;
Example 6: hasClassStart
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasClassStart unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . hasClassStart ( element , " cla " ) ;
assert . hasClassStart ( element , " lass " , " custom message " ) ;
} ) ;
Example 7: lacksClassStart
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example lacksClassStart unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . lacksClassStart ( element , " foo " ) ;
assert . lacksClassStart ( element , " cla " , " custom message " ) ;
} ) ;
Example 8: hasClassPartial
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasClassPartial unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . hasClassPartial ( element , " lass " ) ;
assert . hasClassPartial ( element , " foo " , " custom message " ) ;
} ) ;
Example 9: lacksClassPartial
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example lacksClassStart unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . lacksClassPartial ( element , " foo " ) ;
assert . lacksClassPartial ( element , " lass " , " custom message " ) ;
} ) ;
Example 10: lacksAllClasses - checks to make sure an element contains no classes
QUnit . test ( ' Example lacksAllClasses unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . lacksAllClasses ( element ) ;
assert . lacksAllClasses ( element , " custom message " ) ;
} ) ;
Example 10: hasSomeClass - checks to make sure an element has some class does not matter what
< div class = " class1 class2 " > < / div >
QUnit . test ( ' Example hasSomeClass unit test ' , function ( assert ) {
var element = document . getElementById ( " test " ) ;
assert . hasSomeClass ( element ) ;
assert . hasSomeClass ( element , " custom message " ) ;
} ) ;