select2.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. casper.test.begin('select2', 20, function (test) {
  2. casper
  3. .start('examples/select2/index.html')
  4. .then(function () {
  5. test.assertSelectorHasText('p', 'Selected: 0')
  6. test.assertSelectorHasText('span.select2', 'Select one')
  7. })
  8. // test open and selecting
  9. .then(function () {
  10. // must use a positional click
  11. this.mouse.click('span.select2')
  12. })
  13. .then(function () {
  14. test.assertElementCount('.select2-results__option', 3)
  15. test.assertSelectorHasText('.select2-results__option:nth-child(1)', 'Select one')
  16. test.assertSelectorHasText('.select2-results__option:nth-child(2)', 'Hello')
  17. test.assertSelectorHasText('.select2-results__option:nth-child(3)', 'World')
  18. test.assertEval(function () {
  19. return document
  20. .querySelector('.select2-results__option:nth-child(1)')
  21. .hasAttribute('aria-disabled')
  22. })
  23. })
  24. .then(function () {
  25. this.mouse.click('.select2-results__option:nth-child(2)')
  26. })
  27. .then(function () {
  28. test.assertElementCount('.select2-results__option', 0)
  29. test.assertSelectorHasText('p', 'Selected: 1')
  30. test.assertSelectorHasText('span.select2', 'Hello')
  31. })
  32. // test dynamic options
  33. .thenEvaluate(function () {
  34. vm.options.push({ id: 3, text: 'Vue' })
  35. })
  36. .then(function () {
  37. this.mouse.click('span.select2')
  38. })
  39. .then(function () {
  40. test.assertElementCount('.select2-results__option', 4)
  41. test.assertSelectorHasText('.select2-results__option:nth-child(1)', 'Select one')
  42. test.assertSelectorHasText('.select2-results__option:nth-child(2)', 'Hello')
  43. test.assertSelectorHasText('.select2-results__option:nth-child(3)', 'World')
  44. test.assertSelectorHasText('.select2-results__option:nth-child(4)', 'Vue')
  45. })
  46. .then(function () {
  47. this.mouse.click('.select2-results__option:nth-child(4)')
  48. })
  49. .then(function () {
  50. test.assertElementCount('.select2-results__option', 0)
  51. test.assertSelectorHasText('p', 'Selected: 3')
  52. test.assertSelectorHasText('span.select2', 'Vue')
  53. })
  54. // test parent setting value down
  55. .thenEvaluate(function () {
  56. vm.selected = 2
  57. })
  58. .then(function () {
  59. test.assertSelectorHasText('p', 'Selected: 2')
  60. test.assertSelectorHasText('span.select2', 'World')
  61. })
  62. // run
  63. .run(function () {
  64. test.done()
  65. })
  66. })