repeated-items.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. casper.test.begin('Repeated Items', 41, function (test) {
  2. casper
  3. .start('./fixtures/repeated-items.html')
  4. .then(function () {
  5. // initial values
  6. test.assertSelectorHasText('.count', '3')
  7. test.assertSelectorHasText('.item:nth-child(1)', '0 A')
  8. test.assertSelectorHasText('.item:nth-child(2)', '1 B')
  9. test.assertSelectorHasText('.item:nth-child(3)', '2 C')
  10. })
  11. .thenClick('.push', function () {
  12. test.assertSelectorHasText('.count', '4')
  13. test.assertSelectorHasText('.item:nth-child(4)', '3 0')
  14. })
  15. .thenClick('.shift', function () {
  16. test.assertSelectorHasText('.count', '3')
  17. test.assertSelectorHasText('.item:nth-child(1)', '0 B')
  18. test.assertSelectorHasText('.item:nth-child(2)', '1 C')
  19. test.assertSelectorHasText('.item:nth-child(3)', '2 0')
  20. })
  21. .thenClick('.pop', function () {
  22. test.assertSelectorHasText('.count', '2')
  23. test.assertSelectorHasText('.item:nth-child(1)', '0 B')
  24. test.assertSelectorHasText('.item:nth-child(2)', '1 C')
  25. })
  26. .thenClick('.unshift', function () {
  27. test.assertSelectorHasText('.count', '3')
  28. test.assertSelectorHasText('.item:nth-child(1)', '0 1')
  29. test.assertSelectorHasText('.item:nth-child(2)', '1 B')
  30. test.assertSelectorHasText('.item:nth-child(3)', '2 C')
  31. })
  32. .thenClick('.splice', function () {
  33. test.assertSelectorHasText('.count', '4')
  34. test.assertSelectorHasText('.item:nth-child(1)', '0 1')
  35. test.assertSelectorHasText('.item:nth-child(2)', '1 2')
  36. test.assertSelectorHasText('.item:nth-child(3)', '2 3')
  37. test.assertSelectorHasText('.item:nth-child(4)', '3 C')
  38. })
  39. .thenClick('.remove', function () {
  40. test.assertSelectorHasText('.count', '3')
  41. test.assertSelectorHasText('.item:nth-child(1)', '0 1')
  42. test.assertSelectorHasText('.item:nth-child(2)', '1 2')
  43. test.assertSelectorHasText('.item:nth-child(3)', '2 3')
  44. })
  45. .thenClick('.replace', function () {
  46. test.assertSelectorHasText('.count', '3')
  47. test.assertSelectorHasText('.item:nth-child(1)', '0 1')
  48. test.assertSelectorHasText('.item:nth-child(2)', '1 2')
  49. test.assertSelectorHasText('.item:nth-child(3)', '2 4')
  50. })
  51. .thenClick('.reverse', function () {
  52. test.assertSelectorHasText('.count', '3')
  53. test.assertSelectorHasText('.item:nth-child(1)', '0 4')
  54. test.assertSelectorHasText('.item:nth-child(2)', '1 2')
  55. test.assertSelectorHasText('.item:nth-child(3)', '2 1')
  56. })
  57. .thenClick('.sort', function () {
  58. test.assertSelectorHasText('.count', '3')
  59. test.assertSelectorHasText('.item:nth-child(1)', '0 1')
  60. test.assertSelectorHasText('.item:nth-child(2)', '1 2')
  61. test.assertSelectorHasText('.item:nth-child(3)', '2 4')
  62. })
  63. .then(function () {
  64. // make sure things work on empty array
  65. this.click('.pop')
  66. this.click('.pop')
  67. this.click('.pop')
  68. this.click('.pop')
  69. this.click('.shift')
  70. this.click('.remove')
  71. this.click('.replace')
  72. this.click('.sort')
  73. this.click('.reverse')
  74. this.click('.splice')
  75. })
  76. .then(function () {
  77. test.assertSelectorHasText('.count', '2')
  78. test.assertSelectorHasText('.item:nth-child(1)', '0 6')
  79. test.assertSelectorHasText('.item:nth-child(2)', '1 7')
  80. })
  81. .run(function () {
  82. test.done()
  83. })
  84. })