chat.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. casper.test.begin('chat', 16, function (test) {
  2. casper
  3. .start('examples/chat/index.html')
  4. .then(function () {
  5. test.assertSelectorHasText('.thread-count', 'Unread threads: 2')
  6. test.assertElementCount('.thread-list-item', 3)
  7. test.assertSelectorHasText('.thread-list-item.active', 'Functional Heads')
  8. test.assertSelectorHasText('.message-thread-heading', 'Functional Heads')
  9. test.assertElementCount('.message-list-item', 2)
  10. test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill')
  11. test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Brian')
  12. })
  13. .then(function () {
  14. this.sendKeys('.message-composer', 'hi')
  15. enter()
  16. })
  17. .wait(50) // the demo simulates API latency
  18. .then(function () {
  19. test.assertElementCount('.message-list-item', 3)
  20. test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi')
  21. })
  22. .thenClick('.thread-list-item:nth-child(2)', function () {
  23. test.assertSelectorHasText('.thread-list-item.active', 'Dave and Bill')
  24. test.assertSelectorHasText('.message-thread-heading', 'Dave and Bill')
  25. test.assertElementCount('.message-list-item', 2)
  26. test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill')
  27. test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Dave')
  28. })
  29. .then(function () {
  30. this.sendKeys('.message-composer', 'hi')
  31. enter()
  32. })
  33. .wait(50) // the demo simulates API latency
  34. .then(function () {
  35. test.assertElementCount('.message-list-item', 3)
  36. test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi')
  37. })
  38. .run(function () {
  39. test.done()
  40. })
  41. })
  42. function enter () {
  43. casper.evaluate(function () {
  44. // casper.mouseEvent can't set keyCode
  45. var field = document.querySelector('.message-composer')
  46. var e = document.createEvent('HTMLEvents')
  47. e.initEvent('keyup', true, true)
  48. e.keyCode = 13
  49. field.dispatchEvent(e)
  50. })
  51. }