|
@@ -0,0 +1,52 @@
|
|
|
+casper.test.begin('chat', 16, function (test) {
|
|
|
+ casper
|
|
|
+ .start('examples/chat/index.html')
|
|
|
+ .then(function () {
|
|
|
+ test.assertSelectorHasText('.thread-count', 'Unread threads: 2')
|
|
|
+ test.assertElementCount('.thread-list-item', 3)
|
|
|
+ test.assertSelectorHasText('.thread-list-item.active', 'Functional Heads')
|
|
|
+ test.assertSelectorHasText('.message-thread-heading', 'Functional Heads')
|
|
|
+ test.assertElementCount('.message-list-item', 2)
|
|
|
+ test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill')
|
|
|
+ test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Brian')
|
|
|
+ })
|
|
|
+ .then(function () {
|
|
|
+ this.sendKeys('.message-composer', 'hi')
|
|
|
+ enter()
|
|
|
+ })
|
|
|
+ .wait(50) // the demo simulates API latency
|
|
|
+ .then(function () {
|
|
|
+ test.assertElementCount('.message-list-item', 3)
|
|
|
+ test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi')
|
|
|
+ })
|
|
|
+ .thenClick('.thread-list-item:nth-child(2)', function () {
|
|
|
+ test.assertSelectorHasText('.thread-list-item.active', 'Dave and Bill')
|
|
|
+ test.assertSelectorHasText('.message-thread-heading', 'Dave and Bill')
|
|
|
+ test.assertElementCount('.message-list-item', 2)
|
|
|
+ test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill')
|
|
|
+ test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Dave')
|
|
|
+ })
|
|
|
+ .then(function () {
|
|
|
+ this.sendKeys('.message-composer', 'hi')
|
|
|
+ enter()
|
|
|
+ })
|
|
|
+ .wait(50) // the demo simulates API latency
|
|
|
+ .then(function () {
|
|
|
+ test.assertElementCount('.message-list-item', 3)
|
|
|
+ test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi')
|
|
|
+ })
|
|
|
+ .run(function () {
|
|
|
+ test.done()
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+function enter () {
|
|
|
+ casper.evaluate(function () {
|
|
|
+ // casper.mouseEvent can't set keyCode
|
|
|
+ var field = document.querySelector('.message-composer')
|
|
|
+ var e = document.createEvent('HTMLEvents')
|
|
|
+ e.initEvent('keyup', true, true)
|
|
|
+ e.keyCode = 13
|
|
|
+ field.dispatchEvent(e)
|
|
|
+ })
|
|
|
+}
|