mirror of
https://github.com/miniflux/v2.git
synced 2024-09-08 12:29:23 +02:00
207 lines
4.9 KiB
Go
207 lines
4.9 KiB
Go
package goquery
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestFilter(t *testing.T) {
|
|
sel := Doc().Find(".span12").Filter(".alert")
|
|
assertLength(t, sel.Nodes, 1)
|
|
}
|
|
|
|
func TestFilterNone(t *testing.T) {
|
|
sel := Doc().Find(".span12").Filter(".zzalert")
|
|
assertLength(t, sel.Nodes, 0)
|
|
}
|
|
|
|
func TestFilterInvalid(t *testing.T) {
|
|
sel := Doc().Find(".span12").Filter("")
|
|
assertLength(t, sel.Nodes, 0)
|
|
}
|
|
|
|
func TestFilterRollback(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.Filter(".alert").End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestFilterFunction(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content").FilterFunction(func(i int, s *Selection) bool {
|
|
return i > 0
|
|
})
|
|
assertLength(t, sel.Nodes, 2)
|
|
}
|
|
|
|
func TestFilterFunctionRollback(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.FilterFunction(func(i int, s *Selection) bool {
|
|
return i > 0
|
|
}).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestFilterNode(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.FilterNodes(sel.Nodes[2])
|
|
assertLength(t, sel2.Nodes, 1)
|
|
}
|
|
|
|
func TestFilterNodeRollback(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.FilterNodes(sel.Nodes[2]).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestFilterSelection(t *testing.T) {
|
|
sel := Doc().Find(".link")
|
|
sel2 := Doc().Find("a[ng-click]")
|
|
sel3 := sel.FilterSelection(sel2)
|
|
assertLength(t, sel3.Nodes, 1)
|
|
}
|
|
|
|
func TestFilterSelectionRollback(t *testing.T) {
|
|
sel := Doc().Find(".link")
|
|
sel2 := Doc().Find("a[ng-click]")
|
|
sel2 = sel.FilterSelection(sel2).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestFilterSelectionNil(t *testing.T) {
|
|
var sel2 *Selection
|
|
|
|
sel := Doc().Find(".link")
|
|
sel3 := sel.FilterSelection(sel2)
|
|
assertLength(t, sel3.Nodes, 0)
|
|
}
|
|
|
|
func TestNot(t *testing.T) {
|
|
sel := Doc().Find(".span12").Not(".alert")
|
|
assertLength(t, sel.Nodes, 1)
|
|
}
|
|
|
|
func TestNotInvalid(t *testing.T) {
|
|
sel := Doc().Find(".span12").Not("")
|
|
assertLength(t, sel.Nodes, 2)
|
|
}
|
|
|
|
func TestNotRollback(t *testing.T) {
|
|
sel := Doc().Find(".span12")
|
|
sel2 := sel.Not(".alert").End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestNotNone(t *testing.T) {
|
|
sel := Doc().Find(".span12").Not(".zzalert")
|
|
assertLength(t, sel.Nodes, 2)
|
|
}
|
|
|
|
func TestNotFunction(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content").NotFunction(func(i int, s *Selection) bool {
|
|
return i > 0
|
|
})
|
|
assertLength(t, sel.Nodes, 1)
|
|
}
|
|
|
|
func TestNotFunctionRollback(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.NotFunction(func(i int, s *Selection) bool {
|
|
return i > 0
|
|
}).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestNotNode(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.NotNodes(sel.Nodes[2])
|
|
assertLength(t, sel2.Nodes, 2)
|
|
}
|
|
|
|
func TestNotNodeRollback(t *testing.T) {
|
|
sel := Doc().Find(".pvk-content")
|
|
sel2 := sel.NotNodes(sel.Nodes[2]).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestNotSelection(t *testing.T) {
|
|
sel := Doc().Find(".link")
|
|
sel2 := Doc().Find("a[ng-click]")
|
|
sel3 := sel.NotSelection(sel2)
|
|
assertLength(t, sel3.Nodes, 6)
|
|
}
|
|
|
|
func TestNotSelectionRollback(t *testing.T) {
|
|
sel := Doc().Find(".link")
|
|
sel2 := Doc().Find("a[ng-click]")
|
|
sel2 = sel.NotSelection(sel2).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestIntersection(t *testing.T) {
|
|
sel := Doc().Find(".pvk-gutter")
|
|
sel2 := Doc().Find("div").Intersection(sel)
|
|
assertLength(t, sel2.Nodes, 6)
|
|
}
|
|
|
|
func TestIntersectionRollback(t *testing.T) {
|
|
sel := Doc().Find(".pvk-gutter")
|
|
sel2 := Doc().Find("div")
|
|
sel2 = sel.Intersection(sel2).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestHas(t *testing.T) {
|
|
sel := Doc().Find(".container-fluid").Has(".center-content")
|
|
assertLength(t, sel.Nodes, 2)
|
|
// Has() returns the high-level .container-fluid div, and the one that is the immediate parent of center-content
|
|
}
|
|
|
|
func TestHasInvalid(t *testing.T) {
|
|
sel := Doc().Find(".container-fluid").Has("")
|
|
assertLength(t, sel.Nodes, 0)
|
|
}
|
|
|
|
func TestHasRollback(t *testing.T) {
|
|
sel := Doc().Find(".container-fluid")
|
|
sel2 := sel.Has(".center-content").End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestHasNodes(t *testing.T) {
|
|
sel := Doc().Find(".container-fluid")
|
|
sel2 := Doc().Find(".center-content")
|
|
sel = sel.HasNodes(sel2.Nodes...)
|
|
assertLength(t, sel.Nodes, 2)
|
|
// Has() returns the high-level .container-fluid div, and the one that is the immediate parent of center-content
|
|
}
|
|
|
|
func TestHasNodesRollback(t *testing.T) {
|
|
sel := Doc().Find(".container-fluid")
|
|
sel2 := Doc().Find(".center-content")
|
|
sel2 = sel.HasNodes(sel2.Nodes...).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestHasSelection(t *testing.T) {
|
|
sel := Doc().Find("p")
|
|
sel2 := Doc().Find("small")
|
|
sel = sel.HasSelection(sel2)
|
|
assertLength(t, sel.Nodes, 1)
|
|
}
|
|
|
|
func TestHasSelectionRollback(t *testing.T) {
|
|
sel := Doc().Find("p")
|
|
sel2 := Doc().Find("small")
|
|
sel2 = sel.HasSelection(sel2).End()
|
|
assertEqual(t, sel, sel2)
|
|
}
|
|
|
|
func TestEnd(t *testing.T) {
|
|
sel := Doc().Find("p").Has("small").End()
|
|
assertLength(t, sel.Nodes, 4)
|
|
}
|
|
|
|
func TestEndToTop(t *testing.T) {
|
|
sel := Doc().Find("p").Has("small").End().End().End()
|
|
assertLength(t, sel.Nodes, 0)
|
|
}
|