forked from kamicane/elements
-
Notifications
You must be signed in to change notification settings - Fork 0
/
eventsCasper.js
64 lines (49 loc) · 1.35 KB
/
eventsCasper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"use strict";
var casper = require('casper').create();
casper.test.on('fail', function(){
casper.exit(1)
})
casper.start('http://localhost:9090/events.html', function(){
this.echo('Testing Events', 'INFO_BAR')
})
casper.waitFor(function(){
this.echo('wait for the tests in ./events to finish', 'INFO')
return this.evaluate(function(){
return document.body.getAttribute('data-ready')
})
}, function(){}, function(){
this.echo("body[data-ready] wasn't set to 1", "ERROR")
this.die()
})
function testContainer(expect, msg){
return function(){
casper.test.assertEvalEquals(function(){
return document.querySelector('#container').innerHTML
}, expect, msg)
}
}
// click
casper.then(function(){
this.echo('click an elements', 'INFO')
this.click('#container')
})
casper.then(
testContainer("equal", "this should be the same as the element the event is added to")
)
// keydown
casper.then(function(){
this.echo('send keys an elements', 'INFO')
this.sendKeys('#input', "it's a me!")
})
casper.then(
testContainer("keydown", "it should have executed the keydown listener")
)
// submit
casper.then(function(){
this.echo('submit form', 'INFO')
this.click('#submit')
})
casper.then(
testContainer("submit", "it should have executed the submit listener")
)
casper.run()