tikiwiki/packages/tiki-pkg-casperjs/jerome-breton/casperjs/tests/suites/casper/hooks.js

65 lines
2.7 KiB
JavaScript
Raw Normal View History

2023-11-20 21:52:04 +01:00
/*eslint strict:0*/
casper.test.begin('onStepComplete() hook tests', 1, function(test) {
var stepResults = [];
casper.options.onStepComplete = function(self, stepResult) {
stepResults.push(stepResult);
};
casper.start('tests/site/index.html', function() {
return 'ok';
});
casper.run(function() {
test.assert(stepResults.indexOf('ok') > -1,
'Casper.options.onStepComplete() is called on step complete');
this.options.onStepComplete = undefined;
test.done();
});
});
casper.test.begin('onResourceRequested() & onResourceReceived() hook tests', 6, function(test) {
var requests = [], responses = [];
casper.options.onResourceRequested = function(self, request) {
requests.push(request);
};
casper.options.onResourceReceived = function(self, response) {
responses.push(response);
};
casper.start('tests/site/index.html', function() {
test.assert(requests.some(function(request) {
return (/index\.html$/).test(request.url);
}), 'onResourceRequested() receives page requests');
test.assert(requests.some(function(request) {
return (/phantom\.png$/).test(request.url);
}), 'onResourceRequested() receives image requests');
test.assert(responses.some(function(response) {
return response.stage === 'start' && (/index\.html$/).test(response.url);
}), 'onResourceReceived() receives page response on load start');
test.assert(responses.some(function(response) {
return response.stage === 'end' && (/index\.html$/).test(response.url);
}), 'onResourceReceived() receives page response on load end');
test.assert(responses.some(function(response) {
return response.stage === 'start' && (/phantom\.png$/).test(response.url);
}), 'onResourceReceived() receives image response on load start');
test.assert(responses.some(function(response) {
return response.stage === 'end' && (/phantom\.png$/).test(response.url);
}), 'onResourceReceived() receives image response on load end');
});
casper.run(function() {
this.options.onResourceReceived = this.options.onResourceRequested = undefined;
test.done();
});
});
casper.test.begin('onAlert() hook tests', 1, function(test) {
var message;
casper.options.onAlert = function(self, msg) {
message = msg;
};
casper.start('tests/site/alert.html', function() {
test.assertEquals(message, 'plop', 'Casper.options.onAlert() can intercept an alert message');
});
casper.run(function() {
this.options.onAlert = null;
test.done();
});
});