From f98d0dce5076682d2041e58a232881025e8f9025 Mon Sep 17 00:00:00 2001 From: Martin Angers Date: Sat, 10 Nov 2012 20:57:04 -0500 Subject: [PATCH] add tests for closest with selector --- testdata/page.html | 4 ++-- traversal_test.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) 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) +}