]> source.dussan.org Git - jquery.git/commitdiff
Add tests for class manipulation on jQuery object containing more than one element...
authorMichał Gołębiowski <m.goleb@gmail.com>
Thu, 24 Oct 2013 17:45:42 +0000 (19:45 +0200)
committerMichał Gołębiowski <m.goleb@gmail.com>
Thu, 24 Oct 2013 22:50:55 +0000 (00:50 +0200)
test/unit/attributes.js

index bef1fa23618bba2a724a313115b035c0feddd77e..4f08e0e40d106f507002068aa9ebf477a02f1519 100644 (file)
@@ -1361,6 +1361,49 @@ test( "addClass, removeClass, hasClass", function() {
        ok( jq.hasClass("class4") === false, "Check the class has been properly removed" );
 });
 
+test( "addClass, removeClass, hasClass on many elements", function() {
+       expect( 19 );
+
+       var elem = jQuery( "<p>p0</p><p>p1</p><p>p2</p>" );
+
+       elem.addClass( "hi" );
+       equal( elem[ 0 ].className, "hi", "Check single added class" );
+       equal( elem[ 1 ].className, "hi", "Check single added class" );
+       equal( elem[ 2 ].className, "hi", "Check single added class" );
+
+       elem.addClass( "foo bar" );
+       equal( elem[ 0 ].className, "hi foo bar", "Check more added classes" );
+       equal( elem[ 1 ].className, "hi foo bar", "Check more added classes" );
+       equal( elem[ 2 ].className, "hi foo bar", "Check more added classes" );
+
+       elem.removeClass();
+       equal( elem[ 0 ].className, "", "Remove all classes" );
+       equal( elem[ 1 ].className, "", "Remove all classes" );
+       equal( elem[ 2 ].className, "", "Remove all classes" );
+
+       elem.addClass( "hi foo bar" );
+       elem.removeClass( "foo" );
+       equal( elem[ 0 ].className, "hi bar", "Check removal of one class" );
+       equal( elem[ 1 ].className, "hi bar", "Check removal of one class" );
+       equal( elem[ 2 ].className, "hi bar", "Check removal of one class" );
+
+       ok( elem.hasClass( "hi" ), "Check has1" );
+       ok( elem.hasClass( "bar" ), "Check has2" );
+
+       ok( jQuery( "<p class='hi'>p0</p><p>p1</p><p>p2</p>" ).hasClass( "hi" ),
+               "Did find a class in the first element" );
+       ok( jQuery( "<p>p0</p><p class='hi'>p1</p><p>p2</p>" ).hasClass( "hi" ),
+               "Did find a class in the second element" );
+       ok( jQuery( "<p>p0</p><p>p1</p><p class='hi'>p2</p>" ).hasClass( "hi" ),
+               "Did find a class in the last element" );
+
+       ok( jQuery( "<p class='hi'>p0</p><p class='hi'>p1</p><p class='hi'>p2</p>" ).hasClass( "hi" ),
+               "Did find a class when present in all elements" );
+
+       ok( !jQuery( "<p class='hi0'>p0</p><p class='hi1'>p1</p><p class='hi2'>p2</p>" ).hasClass( "hi" ),
+               "Did not find a class when not present" );
+});
+
 test( "contents().hasClass() returns correct values", function() {
        expect( 2 );