]> source.dussan.org Git - jquery.git/commitdiff
Added filtering tests and updating sizzle to fix filtering with positional selectors...
authortimmywil <timmywillisn@gmail.com>
Tue, 20 Sep 2011 03:09:40 +0000 (23:09 -0400)
committertimmywil <timmywillisn@gmail.com>
Tue, 20 Sep 2011 03:09:40 +0000 (23:09 -0400)
src/sizzle
test/unit/traversing.js

index 5003e31312b9309f88cc1019b0a8702daac20b16..0afda8fcb59cfb16fa75e25b9eea25ee32841bb3 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 5003e31312b9309f88cc1019b0a8702daac20b16
+Subproject commit 0afda8fcb59cfb16fa75e25b9eea25ee32841bb3
index 4cbcee912dcc28501053d98cd5cfbb9cefa6f6c3..18f9ad9f8f3579e5602590e818e3f0a6587b0f8a 100644 (file)
@@ -101,6 +101,49 @@ test("is(jQuery)", function() {
        ok( !jQuery("#simon").is( jQuery(".blogTest")[0] ), "Check for multiple classes: Expected classes 'blog' and 'link', but not 'blogTest'" );
 });
 
+test("filter() with positional selectors", function() {
+       expect(19);
+
+       var html = jQuery('' +
+               '<p id="posp">' +
+                       '<a class="firsta" href="#">' +
+                               '<em>first</em>' +
+                       '</a>' +
+                       '<a class="seconda" href="#">' +
+                               '<b>test</b>' +
+                       '</a>' +
+                       '<em></em>' +
+               '</p>').appendTo( "body" ),
+               filterit = function(sel, filter, length) {
+                       equal( jQuery( sel ).filter( filter ).length, length, "jQuery( " + sel + " ).filter( " + filter + " )" );
+               };
+
+       filterit( "#posp", "#posp:first", 1);
+       filterit( "#posp", "#posp:eq(2)", 0 );
+       filterit( "#posp", "#posp a:first", 0 );
+
+       // Keep in mind this is within the selection and
+       // not in relation to other elements (.is() is a different story)
+       filterit( "#posp .firsta", "#posp a:first", 1 );
+       filterit( "#posp .firsta", "#posp a:last", 1 );
+       filterit( "#posp .firsta", "#posp a:last-child", 0 );
+       filterit( "#posp .firsta", "#posp a:even", 1 );
+       filterit( "#posp .firsta", "#posp a:odd", 0 );
+       filterit( "#posp .firsta", "#posp a:eq(0)", 1 );
+       filterit( "#posp .firsta", "#posp a:eq(9)", 0 );
+       filterit( "#posp .firsta", "#posp em:eq(0)", 0 );
+       filterit( "#posp .firsta", "#posp em:first", 0 );
+       filterit( "#posp .firsta", "#posp:first", 0 );
+
+       filterit( "#posp .seconda", "#posp a:first", 1 );
+       filterit( "#posp .seconda", "#posp em:first", 0 );
+       filterit( "#posp .seconda", "#posp a:last", 1 );
+       filterit( "#posp .seconda", "#posp a:gt(0)", 0 );
+       filterit( "#posp .seconda", "#posp a:lt(5)", 1 );
+       filterit( "#posp .seconda", "#posp a:lt(1)", 1 );
+       html.remove();
+});
+
 test("index()", function() {
        expect( 2 );