Added support for .eq(-N), .first(), and .last(). Fixes #2164 and #4188.
[jquery.git] / test / unit / traversing.js
index f585d9c..46a49bb 100644 (file)
@@ -91,7 +91,7 @@ test("filter(jQuery)", function() {
 })
 
 test("closest()", function() {
-       expect(6);
+       expect(9);
        isSet( jQuery("body").closest("body").get(), q("body"), "closest(body)" );
        isSet( jQuery("body").closest("html").get(), q("html"), "closest(html)" );
        isSet( jQuery("body").closest("div").get(), [], "closest(div)" );
@@ -99,6 +99,12 @@ test("closest()", function() {
 
        isSet( jQuery("div:eq(1)").closest("div:first").get(), [], "closest(div:first)" );
        isSet( jQuery("div").closest("body:first div:last").get(), q("fx-tests"), "closest(body:first div:last)" );
+
+       // Test .closest() limited by the context
+       var jq = jQuery("#nothiddendivchild");
+       isSet( jq.closest("html", document.body).get(), [], "Context limited." );
+       isSet( jq.closest("body", document.body).get(), [], "Context limited." );
+       isSet( jq.closest("#nothiddendiv", document.body).get(), q("nothiddendiv"), "Context not reached." );
 });
 
 test("not(Selector)", function() {
@@ -197,7 +203,7 @@ test("prev([String])", function() {
 });
 
 test("slice()", function() {
-       expect(6);
+       expect(7);
 
        var $links = jQuery("#ap a");
 
@@ -207,8 +213,20 @@ test("slice()", function() {
        isSet( $links.slice(-1), q("mark"), "slice(-1)" );
 
        isSet( $links.eq(1), q("groups"), "eq(1)" );
-
        isSet( $links.eq('2'), q("anchor1"), "eq('2')" );
+       isSet( $links.eq(-1), q("mark"), "eq(-1)" );
+});
+
+test("first()/last()", function() {
+       expect(4);
+
+       var $links = jQuery("#ap a"), $none = jQuery("asdf");
+
+       isSet( $links.first(), q("google"), "first()" );
+       isSet( $links.last(), q("mark"), "last()" );
+
+       isSet( $none.first(), [], "first() none" );
+       isSet( $none.last(), [], "last() none" );
 });
 
 test("map()", function() {