123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793 |
- package goquery
- import (
- "strings"
- "testing"
- )
- func TestFind(t *testing.T) {
- sel := Doc().Find("div.row-fluid")
- assertLength(t, sel.Nodes, 9)
- }
- func TestFindRollback(t *testing.T) {
- sel := Doc().Find("div.row-fluid")
- sel2 := sel.Find("a").End()
- assertEqual(t, sel, sel2)
- }
- func TestFindNotSelf(t *testing.T) {
- sel := Doc().Find("h1").Find("h1")
- assertLength(t, sel.Nodes, 0)
- }
- func TestFindInvalid(t *testing.T) {
- sel := Doc().Find(":+ ^")
- assertLength(t, sel.Nodes, 0)
- }
- func TestFindBig(t *testing.T) {
- doc := DocW()
- sel := doc.Find("li")
- assertLength(t, sel.Nodes, 373)
- sel2 := doc.Find("span")
- assertLength(t, sel2.Nodes, 448)
- sel3 := sel.FindSelection(sel2)
- assertLength(t, sel3.Nodes, 248)
- }
- func TestChainedFind(t *testing.T) {
- sel := Doc().Find("div.hero-unit").Find(".row-fluid")
- assertLength(t, sel.Nodes, 4)
- }
- func TestChainedFindInvalid(t *testing.T) {
- sel := Doc().Find("div.hero-unit").Find("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestChildren(t *testing.T) {
- sel := Doc().Find(".pvk-content").Children()
- assertLength(t, sel.Nodes, 5)
- }
- func TestChildrenRollback(t *testing.T) {
- sel := Doc().Find(".pvk-content")
- sel2 := sel.Children().End()
- assertEqual(t, sel, sel2)
- }
- func TestContents(t *testing.T) {
- sel := Doc().Find(".pvk-content").Contents()
- assertLength(t, sel.Nodes, 13)
- }
- func TestContentsRollback(t *testing.T) {
- sel := Doc().Find(".pvk-content")
- sel2 := sel.Contents().End()
- assertEqual(t, sel, sel2)
- }
- func TestChildrenFiltered(t *testing.T) {
- sel := Doc().Find(".pvk-content").ChildrenFiltered(".hero-unit")
- assertLength(t, sel.Nodes, 1)
- }
- func TestChildrenFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".pvk-content").ChildrenFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestChildrenFilteredRollback(t *testing.T) {
- sel := Doc().Find(".pvk-content")
- sel2 := sel.ChildrenFiltered(".hero-unit").End()
- assertEqual(t, sel, sel2)
- }
- func TestContentsFiltered(t *testing.T) {
- sel := Doc().Find(".pvk-content").ContentsFiltered(".hero-unit")
- assertLength(t, sel.Nodes, 1)
- }
- func TestContentsFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".pvk-content").ContentsFiltered("~")
- assertLength(t, sel.Nodes, 0)
- }
- func TestContentsFilteredRollback(t *testing.T) {
- sel := Doc().Find(".pvk-content")
- sel2 := sel.ContentsFiltered(".hero-unit").End()
- assertEqual(t, sel, sel2)
- }
- func TestChildrenFilteredNone(t *testing.T) {
- sel := Doc().Find(".pvk-content").ChildrenFiltered("a.btn")
- assertLength(t, sel.Nodes, 0)
- }
- func TestParent(t *testing.T) {
- sel := Doc().Find(".container-fluid").Parent()
- assertLength(t, sel.Nodes, 3)
- }
- func TestParentRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.Parent().End()
- assertEqual(t, sel, sel2)
- }
- func TestParentBody(t *testing.T) {
- sel := Doc().Find("body").Parent()
- assertLength(t, sel.Nodes, 1)
- }
- func TestParentFiltered(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentFiltered(".hero-unit")
- assertLength(t, sel.Nodes, 1)
- assertClass(t, sel, "hero-unit")
- }
- func TestParentFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestParentFilteredRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ParentFiltered(".hero-unit").End()
- assertEqual(t, sel, sel2)
- }
- func TestParents(t *testing.T) {
- sel := Doc().Find(".container-fluid").Parents()
- assertLength(t, sel.Nodes, 8)
- }
- func TestParentsOrder(t *testing.T) {
- sel := Doc().Find("#cf2").Parents()
- assertLength(t, sel.Nodes, 6)
- assertSelectionIs(t, sel, ".hero-unit", ".pvk-content", "div.row-fluid", "#cf1", "body", "html")
- }
- func TestParentsRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.Parents().End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsFiltered(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentsFiltered("body")
- assertLength(t, sel.Nodes, 1)
- }
- func TestParentsFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentsFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestParentsFilteredRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ParentsFiltered("body").End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsUntil(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentsUntil("body")
- assertLength(t, sel.Nodes, 6)
- }
- func TestParentsUntilInvalid(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentsUntil("")
- assertLength(t, sel.Nodes, 8)
- }
- func TestParentsUntilRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ParentsUntil("body").End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsUntilSelection(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".pvk-content")
- sel = sel.ParentsUntilSelection(sel2)
- assertLength(t, sel.Nodes, 3)
- }
- func TestParentsUntilSelectionRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".pvk-content")
- sel2 = sel.ParentsUntilSelection(sel2).End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsUntilNodes(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".pvk-content, .hero-unit")
- sel = sel.ParentsUntilNodes(sel2.Nodes...)
- assertLength(t, sel.Nodes, 2)
- }
- func TestParentsUntilNodesRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".pvk-content, .hero-unit")
- sel2 = sel.ParentsUntilNodes(sel2.Nodes...).End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsFilteredUntil(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentsFilteredUntil(".pvk-content", "body")
- assertLength(t, sel.Nodes, 2)
- }
- func TestParentsFilteredUntilInvalid(t *testing.T) {
- sel := Doc().Find(".container-fluid").ParentsFilteredUntil("", "")
- assertLength(t, sel.Nodes, 0)
- }
- func TestParentsFilteredUntilRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ParentsFilteredUntil(".pvk-content", "body").End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsFilteredUntilSelection(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".row-fluid")
- sel = sel.ParentsFilteredUntilSelection("div", sel2)
- assertLength(t, sel.Nodes, 3)
- }
- func TestParentsFilteredUntilSelectionRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".row-fluid")
- sel2 = sel.ParentsFilteredUntilSelection("div", sel2).End()
- assertEqual(t, sel, sel2)
- }
- func TestParentsFilteredUntilNodes(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".row-fluid")
- sel = sel.ParentsFilteredUntilNodes("body", sel2.Nodes...)
- assertLength(t, sel.Nodes, 1)
- }
- func TestParentsFilteredUntilNodesRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := Doc().Find(".row-fluid")
- sel2 = sel.ParentsFilteredUntilNodes("body", sel2.Nodes...).End()
- assertEqual(t, sel, sel2)
- }
- func TestSiblings(t *testing.T) {
- sel := Doc().Find("h1").Siblings()
- assertLength(t, sel.Nodes, 1)
- }
- func TestSiblingsRollback(t *testing.T) {
- sel := Doc().Find("h1")
- sel2 := sel.Siblings().End()
- assertEqual(t, sel, sel2)
- }
- func TestSiblings2(t *testing.T) {
- sel := Doc().Find(".pvk-gutter").Siblings()
- assertLength(t, sel.Nodes, 9)
- }
- func TestSiblings3(t *testing.T) {
- sel := Doc().Find("body>.container-fluid").Siblings()
- assertLength(t, sel.Nodes, 0)
- }
- func TestSiblingsFiltered(t *testing.T) {
- sel := Doc().Find(".pvk-gutter").SiblingsFiltered(".pvk-content")
- assertLength(t, sel.Nodes, 3)
- }
- func TestSiblingsFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".pvk-gutter").SiblingsFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestSiblingsFilteredRollback(t *testing.T) {
- sel := Doc().Find(".pvk-gutter")
- sel2 := sel.SiblingsFiltered(".pvk-content").End()
- assertEqual(t, sel, sel2)
- }
- func TestNext(t *testing.T) {
- sel := Doc().Find("h1").Next()
- assertLength(t, sel.Nodes, 1)
- }
- func TestNextRollback(t *testing.T) {
- sel := Doc().Find("h1")
- sel2 := sel.Next().End()
- assertEqual(t, sel, sel2)
- }
- func TestNext2(t *testing.T) {
- sel := Doc().Find(".close").Next()
- assertLength(t, sel.Nodes, 1)
- }
- func TestNextNone(t *testing.T) {
- sel := Doc().Find("small").Next()
- assertLength(t, sel.Nodes, 0)
- }
- func TestNextFiltered(t *testing.T) {
- sel := Doc().Find(".container-fluid").NextFiltered("div")
- assertLength(t, sel.Nodes, 2)
- }
- func TestNextFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".container-fluid").NextFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestNextFilteredRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.NextFiltered("div").End()
- assertEqual(t, sel, sel2)
- }
- func TestNextFiltered2(t *testing.T) {
- sel := Doc().Find(".container-fluid").NextFiltered("[ng-view]")
- assertLength(t, sel.Nodes, 1)
- }
- func TestPrev(t *testing.T) {
- sel := Doc().Find(".red").Prev()
- assertLength(t, sel.Nodes, 1)
- assertClass(t, sel, "green")
- }
- func TestPrevRollback(t *testing.T) {
- sel := Doc().Find(".red")
- sel2 := sel.Prev().End()
- assertEqual(t, sel, sel2)
- }
- func TestPrev2(t *testing.T) {
- sel := Doc().Find(".row-fluid").Prev()
- assertLength(t, sel.Nodes, 5)
- }
- func TestPrevNone(t *testing.T) {
- sel := Doc().Find("h2").Prev()
- assertLength(t, sel.Nodes, 0)
- }
- func TestPrevFiltered(t *testing.T) {
- sel := Doc().Find(".row-fluid").PrevFiltered(".row-fluid")
- assertLength(t, sel.Nodes, 5)
- }
- func TestPrevFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".row-fluid").PrevFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestPrevFilteredRollback(t *testing.T) {
- sel := Doc().Find(".row-fluid")
- sel2 := sel.PrevFiltered(".row-fluid").End()
- assertEqual(t, sel, sel2)
- }
- func TestNextAll(t *testing.T) {
- sel := Doc().Find("#cf2 div:nth-child(1)").NextAll()
- assertLength(t, sel.Nodes, 3)
- }
- func TestNextAllRollback(t *testing.T) {
- sel := Doc().Find("#cf2 div:nth-child(1)")
- sel2 := sel.NextAll().End()
- assertEqual(t, sel, sel2)
- }
- func TestNextAll2(t *testing.T) {
- sel := Doc().Find("div[ng-cloak]").NextAll()
- assertLength(t, sel.Nodes, 1)
- }
- func TestNextAllNone(t *testing.T) {
- sel := Doc().Find(".footer").NextAll()
- assertLength(t, sel.Nodes, 0)
- }
- func TestNextAllFiltered(t *testing.T) {
- sel := Doc().Find("#cf2 .row-fluid").NextAllFiltered("[ng-cloak]")
- assertLength(t, sel.Nodes, 2)
- }
- func TestNextAllFilteredInvalid(t *testing.T) {
- sel := Doc().Find("#cf2 .row-fluid").NextAllFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestNextAllFilteredRollback(t *testing.T) {
- sel := Doc().Find("#cf2 .row-fluid")
- sel2 := sel.NextAllFiltered("[ng-cloak]").End()
- assertEqual(t, sel, sel2)
- }
- func TestNextAllFiltered2(t *testing.T) {
- sel := Doc().Find(".close").NextAllFiltered("h4")
- assertLength(t, sel.Nodes, 1)
- }
- func TestPrevAll(t *testing.T) {
- sel := Doc().Find("[ng-view]").PrevAll()
- assertLength(t, sel.Nodes, 2)
- }
- func TestPrevAllOrder(t *testing.T) {
- sel := Doc().Find("[ng-view]").PrevAll()
- assertLength(t, sel.Nodes, 2)
- assertSelectionIs(t, sel, "#cf4", "#cf3")
- }
- func TestPrevAllRollback(t *testing.T) {
- sel := Doc().Find("[ng-view]")
- sel2 := sel.PrevAll().End()
- assertEqual(t, sel, sel2)
- }
- func TestPrevAll2(t *testing.T) {
- sel := Doc().Find(".pvk-gutter").PrevAll()
- assertLength(t, sel.Nodes, 6)
- }
- func TestPrevAllFiltered(t *testing.T) {
- sel := Doc().Find(".pvk-gutter").PrevAllFiltered(".pvk-content")
- assertLength(t, sel.Nodes, 3)
- }
- func TestPrevAllFilteredInvalid(t *testing.T) {
- sel := Doc().Find(".pvk-gutter").PrevAllFiltered("")
- assertLength(t, sel.Nodes, 0)
- }
- func TestPrevAllFilteredRollback(t *testing.T) {
- sel := Doc().Find(".pvk-gutter")
- sel2 := sel.PrevAllFiltered(".pvk-content").End()
- assertEqual(t, sel, sel2)
- }
- func TestNextUntil(t *testing.T) {
- sel := Doc().Find(".alert a").NextUntil("p")
- assertLength(t, sel.Nodes, 1)
- assertSelectionIs(t, sel, "h4")
- }
- func TestNextUntilInvalid(t *testing.T) {
- sel := Doc().Find(".alert a").NextUntil("")
- assertLength(t, sel.Nodes, 2)
- }
- func TestNextUntil2(t *testing.T) {
- sel := Doc().Find("#cf2-1").NextUntil("[ng-cloak]")
- assertLength(t, sel.Nodes, 1)
- assertSelectionIs(t, sel, "#cf2-2")
- }
- func TestNextUntilOrder(t *testing.T) {
- sel := Doc().Find("#cf2-1").NextUntil("#cf2-4")
- assertLength(t, sel.Nodes, 2)
- assertSelectionIs(t, sel, "#cf2-2", "#cf2-3")
- }
- func TestNextUntilRollback(t *testing.T) {
- sel := Doc().Find("#cf2-1")
- sel2 := sel.PrevUntil("#cf2-4").End()
- assertEqual(t, sel, sel2)
- }
- func TestNextUntilSelection(t *testing.T) {
- sel := Doc2().Find("#n2")
- sel2 := Doc2().Find("#n4")
- sel2 = sel.NextUntilSelection(sel2)
- assertLength(t, sel2.Nodes, 1)
- assertSelectionIs(t, sel2, "#n3")
- }
- func TestNextUntilSelectionRollback(t *testing.T) {
- sel := Doc2().Find("#n2")
- sel2 := Doc2().Find("#n4")
- sel2 = sel.NextUntilSelection(sel2).End()
- assertEqual(t, sel, sel2)
- }
- func TestNextUntilNodes(t *testing.T) {
- sel := Doc2().Find("#n2")
- sel2 := Doc2().Find("#n5")
- sel2 = sel.NextUntilNodes(sel2.Nodes...)
- assertLength(t, sel2.Nodes, 2)
- assertSelectionIs(t, sel2, "#n3", "#n4")
- }
- func TestNextUntilNodesRollback(t *testing.T) {
- sel := Doc2().Find("#n2")
- sel2 := Doc2().Find("#n5")
- sel2 = sel.NextUntilNodes(sel2.Nodes...).End()
- assertEqual(t, sel, sel2)
- }
- func TestPrevUntil(t *testing.T) {
- sel := Doc().Find(".alert p").PrevUntil("a")
- assertLength(t, sel.Nodes, 1)
- assertSelectionIs(t, sel, "h4")
- }
- func TestPrevUntilInvalid(t *testing.T) {
- sel := Doc().Find(".alert p").PrevUntil("")
- assertLength(t, sel.Nodes, 2)
- }
- func TestPrevUntil2(t *testing.T) {
- sel := Doc().Find("[ng-cloak]").PrevUntil(":not([ng-cloak])")
- assertLength(t, sel.Nodes, 1)
- assertSelectionIs(t, sel, "[ng-cloak]")
- }
- func TestPrevUntilOrder(t *testing.T) {
- sel := Doc().Find("#cf2-4").PrevUntil("#cf2-1")
- assertLength(t, sel.Nodes, 2)
- assertSelectionIs(t, sel, "#cf2-3", "#cf2-2")
- }
- func TestPrevUntilRollback(t *testing.T) {
- sel := Doc().Find("#cf2-4")
- sel2 := sel.PrevUntil("#cf2-1").End()
- assertEqual(t, sel, sel2)
- }
- func TestPrevUntilSelection(t *testing.T) {
- sel := Doc2().Find("#n4")
- sel2 := Doc2().Find("#n2")
- sel2 = sel.PrevUntilSelection(sel2)
- assertLength(t, sel2.Nodes, 1)
- assertSelectionIs(t, sel2, "#n3")
- }
- func TestPrevUntilSelectionRollback(t *testing.T) {
- sel := Doc2().Find("#n4")
- sel2 := Doc2().Find("#n2")
- sel2 = sel.PrevUntilSelection(sel2).End()
- assertEqual(t, sel, sel2)
- }
- func TestPrevUntilNodes(t *testing.T) {
- sel := Doc2().Find("#n5")
- sel2 := Doc2().Find("#n2")
- sel2 = sel.PrevUntilNodes(sel2.Nodes...)
- assertLength(t, sel2.Nodes, 2)
- assertSelectionIs(t, sel2, "#n4", "#n3")
- }
- func TestPrevUntilNodesRollback(t *testing.T) {
- sel := Doc2().Find("#n5")
- sel2 := Doc2().Find("#n2")
- sel2 = sel.PrevUntilNodes(sel2.Nodes...).End()
- assertEqual(t, sel, sel2)
- }
- func TestNextFilteredUntil(t *testing.T) {
- sel := Doc2().Find(".two").NextFilteredUntil(".even", ".six")
- assertLength(t, sel.Nodes, 4)
- assertSelectionIs(t, sel, "#n3", "#n5", "#nf3", "#nf5")
- }
- func TestNextFilteredUntilInvalid(t *testing.T) {
- sel := Doc2().Find(".two").NextFilteredUntil("", "")
- assertLength(t, sel.Nodes, 0)
- }
- func TestNextFilteredUntilRollback(t *testing.T) {
- sel := Doc2().Find(".two")
- sel2 := sel.NextFilteredUntil(".even", ".six").End()
- assertEqual(t, sel, sel2)
- }
- func TestNextFilteredUntilSelection(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".five")
- sel = sel.NextFilteredUntilSelection(".even", sel2)
- assertLength(t, sel.Nodes, 2)
- assertSelectionIs(t, sel, "#n3", "#nf3")
- }
- func TestNextFilteredUntilSelectionRollback(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".five")
- sel3 := sel.NextFilteredUntilSelection(".even", sel2).End()
- assertEqual(t, sel, sel3)
- }
- func TestNextFilteredUntilNodes(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".four")
- sel = sel.NextFilteredUntilNodes(".odd", sel2.Nodes...)
- assertLength(t, sel.Nodes, 4)
- assertSelectionIs(t, sel, "#n2", "#n6", "#nf2", "#nf6")
- }
- func TestNextFilteredUntilNodesRollback(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".four")
- sel3 := sel.NextFilteredUntilNodes(".odd", sel2.Nodes...).End()
- assertEqual(t, sel, sel3)
- }
- func TestPrevFilteredUntil(t *testing.T) {
- sel := Doc2().Find(".five").PrevFilteredUntil(".odd", ".one")
- assertLength(t, sel.Nodes, 4)
- assertSelectionIs(t, sel, "#n4", "#n2", "#nf4", "#nf2")
- }
- func TestPrevFilteredUntilInvalid(t *testing.T) {
- sel := Doc2().Find(".five").PrevFilteredUntil("", "")
- assertLength(t, sel.Nodes, 0)
- }
- func TestPrevFilteredUntilRollback(t *testing.T) {
- sel := Doc2().Find(".four")
- sel2 := sel.PrevFilteredUntil(".odd", ".one").End()
- assertEqual(t, sel, sel2)
- }
- func TestPrevFilteredUntilSelection(t *testing.T) {
- sel := Doc2().Find(".odd")
- sel2 := Doc2().Find(".two")
- sel = sel.PrevFilteredUntilSelection(".odd", sel2)
- assertLength(t, sel.Nodes, 2)
- assertSelectionIs(t, sel, "#n4", "#nf4")
- }
- func TestPrevFilteredUntilSelectionRollback(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".five")
- sel3 := sel.PrevFilteredUntilSelection(".even", sel2).End()
- assertEqual(t, sel, sel3)
- }
- func TestPrevFilteredUntilNodes(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".four")
- sel = sel.PrevFilteredUntilNodes(".odd", sel2.Nodes...)
- assertLength(t, sel.Nodes, 2)
- assertSelectionIs(t, sel, "#n2", "#nf2")
- }
- func TestPrevFilteredUntilNodesRollback(t *testing.T) {
- sel := Doc2().Find(".even")
- sel2 := Doc2().Find(".four")
- 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 TestClosestInvalid(t *testing.T) {
- sel := Doc().Find("h4")
- sel2 := sel.Closest("")
- 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)
- }
- func TestClosestSelectionItself(t *testing.T) {
- sel := Doc2().Find(".three")
- sel2 := sel.ClosestSelection(Doc2().Find(".row"))
- assertLength(t, sel2.Nodes, sel.Length())
- }
- func TestClosestSelectionNoDupes(t *testing.T) {
- sel := Doc().Find(".span12")
- sel2 := sel.ClosestSelection(Doc().Find(".pvk-content"))
- assertLength(t, sel2.Nodes, 1)
- assertClass(t, sel2, "pvk-content")
- }
- func TestClosestSelectionNone(t *testing.T) {
- sel := Doc().Find("h4")
- sel2 := sel.ClosestSelection(Doc().Find("a"))
- assertLength(t, sel2.Nodes, 0)
- }
- func TestClosestSelectionMany(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ClosestSelection(Doc().Find(".pvk-content"))
- assertLength(t, sel2.Nodes, 2)
- assertSelectionIs(t, sel2, "#pc1", "#pc2")
- }
- func TestClosestSelectionRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ClosestSelection(Doc().Find(".pvk-content")).End()
- assertEqual(t, sel, sel2)
- }
- func TestClosestNodesItself(t *testing.T) {
- sel := Doc2().Find(".three")
- sel2 := sel.ClosestNodes(Doc2().Find(".row").Nodes...)
- assertLength(t, sel2.Nodes, sel.Length())
- }
- func TestClosestNodesNoDupes(t *testing.T) {
- sel := Doc().Find(".span12")
- sel2 := sel.ClosestNodes(Doc().Find(".pvk-content").Nodes...)
- assertLength(t, sel2.Nodes, 1)
- assertClass(t, sel2, "pvk-content")
- }
- func TestClosestNodesNone(t *testing.T) {
- sel := Doc().Find("h4")
- sel2 := sel.ClosestNodes(Doc().Find("a").Nodes...)
- assertLength(t, sel2.Nodes, 0)
- }
- func TestClosestNodesMany(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ClosestNodes(Doc().Find(".pvk-content").Nodes...)
- assertLength(t, sel2.Nodes, 2)
- assertSelectionIs(t, sel2, "#pc1", "#pc2")
- }
- func TestClosestNodesRollback(t *testing.T) {
- sel := Doc().Find(".container-fluid")
- sel2 := sel.ClosestNodes(Doc().Find(".pvk-content").Nodes...).End()
- assertEqual(t, sel, sel2)
- }
- func TestIssue26(t *testing.T) {
- img1 := `<img src="assets/images/gallery/thumb-1.jpg" alt="150x150" />`
- img2 := `<img alt="150x150" src="assets/images/gallery/thumb-1.jpg" />`
- cases := []struct {
- s string
- l int
- }{
- {s: img1 + img2, l: 2},
- {s: img1, l: 1},
- {s: img2, l: 1},
- }
- for _, c := range cases {
- doc, err := NewDocumentFromReader(strings.NewReader(c.s))
- if err != nil {
- t.Fatal(err)
- }
- sel := doc.Find("img[src]")
- assertLength(t, sel.Nodes, c.l)
- }
- }
|