diff --git a/testdata/page.html b/testdata/page.html index 2b3ffd3..92ec74e 100644 --- a/testdata/page.html +++ b/testdata/page.html @@ -19,7 +19,7 @@
 
-
+
@@ -54,7 +54,7 @@

 
-
+
diff --git a/traversal_test.go b/traversal_test.go index bd2e35e..2fbb29e 100644 --- a/traversal_test.go +++ b/traversal_test.go @@ -576,3 +576,36 @@ func TestPrevFilteredUntilNodesRollback(t *testing.T) { sel3 := sel.PrevFilteredUntilNodes(".odd", sel2.Nodes...).End() AssertEqual(t, sel, sel3) } + +func TestClosestItself(t *testing.T) { + sel := Doc2().Find(".three") + sel2 := sel.Closest(".row") + AssertLength(t, sel2.Nodes, sel.Length()) + AssertSelectionIs(t, sel2, "#n3", "#nf3") +} + +func TestClosestNoDupes(t *testing.T) { + sel := Doc().Find(".span12") + sel2 := sel.Closest(".pvk-content") + AssertLength(t, sel2.Nodes, 1) + AssertClass(t, sel2, "pvk-content") +} + +func TestClosestNone(t *testing.T) { + sel := Doc().Find("h4") + sel2 := sel.Closest("a") + AssertLength(t, sel2.Nodes, 0) +} + +func TestClosestMany(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Closest(".pvk-content") + AssertLength(t, sel2.Nodes, 2) + AssertSelectionIs(t, sel2, "#pc1", "#pc2") +} + +func TestClosestRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Closest(".pvk-content").End() + AssertEqual(t, sel, sel2) +}