expand_test.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package goquery
  2. import (
  3. "testing"
  4. )
  5. func TestAdd(t *testing.T) {
  6. sel := Doc().Find("div.row-fluid").Add("a")
  7. assertLength(t, sel.Nodes, 19)
  8. }
  9. func TestAddInvalid(t *testing.T) {
  10. sel1 := Doc().Find("div.row-fluid")
  11. sel2 := sel1.Add("")
  12. assertLength(t, sel1.Nodes, 9)
  13. assertLength(t, sel2.Nodes, 9)
  14. if sel1 == sel2 {
  15. t.Errorf("selections should not be the same")
  16. }
  17. }
  18. func TestAddRollback(t *testing.T) {
  19. sel := Doc().Find(".pvk-content")
  20. sel2 := sel.Add("a").End()
  21. assertEqual(t, sel, sel2)
  22. }
  23. func TestAddSelection(t *testing.T) {
  24. sel := Doc().Find("div.row-fluid")
  25. sel2 := Doc().Find("a")
  26. sel = sel.AddSelection(sel2)
  27. assertLength(t, sel.Nodes, 19)
  28. }
  29. func TestAddSelectionNil(t *testing.T) {
  30. sel := Doc().Find("div.row-fluid")
  31. assertLength(t, sel.Nodes, 9)
  32. sel = sel.AddSelection(nil)
  33. assertLength(t, sel.Nodes, 9)
  34. }
  35. func TestAddSelectionRollback(t *testing.T) {
  36. sel := Doc().Find(".pvk-content")
  37. sel2 := sel.Find("a")
  38. sel2 = sel.AddSelection(sel2).End()
  39. assertEqual(t, sel, sel2)
  40. }
  41. func TestAddNodes(t *testing.T) {
  42. sel := Doc().Find("div.pvk-gutter")
  43. sel2 := Doc().Find(".pvk-content")
  44. sel = sel.AddNodes(sel2.Nodes...)
  45. assertLength(t, sel.Nodes, 9)
  46. }
  47. func TestAddNodesNone(t *testing.T) {
  48. sel := Doc().Find("div.pvk-gutter").AddNodes()
  49. assertLength(t, sel.Nodes, 6)
  50. }
  51. func TestAddNodesRollback(t *testing.T) {
  52. sel := Doc().Find(".pvk-content")
  53. sel2 := sel.Find("a")
  54. sel2 = sel.AddNodes(sel2.Nodes...).End()
  55. assertEqual(t, sel, sel2)
  56. }
  57. func TestAddNodesBig(t *testing.T) {
  58. doc := DocW()
  59. sel := doc.Find("li")
  60. assertLength(t, sel.Nodes, 373)
  61. sel2 := doc.Find("xyz")
  62. assertLength(t, sel2.Nodes, 0)
  63. nodes := sel.Nodes
  64. sel2 = sel2.AddNodes(nodes...)
  65. assertLength(t, sel2.Nodes, 373)
  66. nodes2 := append(nodes, nodes...)
  67. sel2 = sel2.End().AddNodes(nodes2...)
  68. assertLength(t, sel2.Nodes, 373)
  69. nodes3 := append(nodes2, nodes...)
  70. sel2 = sel2.End().AddNodes(nodes3...)
  71. assertLength(t, sel2.Nodes, 373)
  72. }
  73. func TestAndSelf(t *testing.T) {
  74. sel := Doc().Find(".span12").Last().AndSelf()
  75. assertLength(t, sel.Nodes, 2)
  76. }
  77. func TestAndSelfRollback(t *testing.T) {
  78. sel := Doc().Find(".pvk-content")
  79. sel2 := sel.Find("a").AndSelf().End().End()
  80. assertEqual(t, sel, sel2)
  81. }
  82. func TestAddBack(t *testing.T) {
  83. sel := Doc().Find(".span12").Last().AddBack()
  84. assertLength(t, sel.Nodes, 2)
  85. }
  86. func TestAddBackRollback(t *testing.T) {
  87. sel := Doc().Find(".pvk-content")
  88. sel2 := sel.Find("a").AddBack().End().End()
  89. assertEqual(t, sel, sel2)
  90. }
  91. func TestAddBackFiltered(t *testing.T) {
  92. sel := Doc().Find(".span12, .footer").Find("h1").AddBackFiltered(".footer")
  93. assertLength(t, sel.Nodes, 2)
  94. }
  95. func TestAddBackFilteredRollback(t *testing.T) {
  96. sel := Doc().Find(".span12, .footer")
  97. sel2 := sel.Find("h1").AddBackFiltered(".footer").End().End()
  98. assertEqual(t, sel, sel2)
  99. }