102 lines
3.6 KiB
JavaScript
Executable File
102 lines
3.6 KiB
JavaScript
Executable File
/*global casper*/
|
||
/*jshint strict:false*/
|
||
/* jshint -W100 */
|
||
casper.test.begin('event page.resource.requested tests', 4, function (test) {
|
||
|
||
var pageResourceRequested = false;
|
||
var pageResourceReceived = false;
|
||
|
||
casper.on('page.resource.requested', function () {
|
||
pageResourceRequested = true;
|
||
});
|
||
casper.on('page.resource.received', function () {
|
||
pageResourceReceived = true;
|
||
});
|
||
|
||
casper.start('tests/site/urls.html', function () {
|
||
rawUnicodeUrlTest();
|
||
});
|
||
|
||
var rawUnicodeUrlTest = function () {
|
||
casper.waitFor(function () {
|
||
return pageResourceRequested === true
|
||
}, function () {
|
||
casper.test.pass('page.resource.requested called on raw unicode url');
|
||
}, function () {
|
||
casper.test.fail('page.resource.requested was not called on raw unicode url')
|
||
}, 200);
|
||
|
||
casper.waitFor(function () {
|
||
return pageResourceReceived === true
|
||
}, function () {
|
||
casper.test.pass('page.resource.received called on raw unicode url');
|
||
uriEncodedUrlTest();
|
||
}, function () {
|
||
casper.test.fail('page.resource.received was not called on raw unicode url')
|
||
}, 200);
|
||
|
||
pageResourceRequested = false;
|
||
pageResourceReceived = false;
|
||
|
||
casper.clickLabel('raw unicode', 'a');
|
||
};
|
||
|
||
var uriEncodedUrlTest = function () {
|
||
casper.waitFor(function () {
|
||
return pageResourceRequested === true
|
||
}, function () {
|
||
casper.test.pass('page.resource.requested called on uri encoded url');
|
||
}, function () {
|
||
casper.test.fail('page.resource.requested was not called on uri encoded url')
|
||
}, 200);
|
||
|
||
casper.waitFor(function () {
|
||
return pageResourceReceived === true
|
||
}, function () {
|
||
casper.test.pass('page.resource.received called on uri encoded url');
|
||
// This test fails because of PhantomJS bug
|
||
//escapedUrlTest();
|
||
}, function () {
|
||
casper.test.fail('page.resource.received was not called on uri encoded url')
|
||
}, 200);
|
||
|
||
pageResourceRequested = false;
|
||
pageResourceReceived = false;
|
||
|
||
casper.clickLabel('uri encoded', 'a');
|
||
};
|
||
|
||
// this test fails, because page.onNavigationRequested event get not correctly escaped url from PhantomJS:
|
||
// console.log(casper.requestUrl) -> http://localhost:54321/tests/site/urls.html?test=Forl<72>
|
||
// Chrome and Firefox do not escape this URL at all (/urls.html?test=Forl%EC)
|
||
// We could unescape it, but it will still not be equal equal with the PhantomJS one
|
||
// console.log(unescape(requestData.url)) -> http://localhost:54321/tests/site/urls.html?test=Forlì
|
||
var escapedUrlTest = function () {
|
||
casper.waitFor(function () {
|
||
return pageResourceRequested === true
|
||
}, function () {
|
||
casper.test.pass('page.resource.requested called on escaped url');
|
||
}, function () {
|
||
casper.test.fail('page.resource.requested was not called on escaped url')
|
||
}, 200);
|
||
|
||
casper.waitFor(function () {
|
||
return pageResourceReceived === true
|
||
}, function () {
|
||
casper.test.pass('page.resource.received called on escaped url');
|
||
}, function () {
|
||
casper.test.fail('page.resource.received was not called on escaped url')
|
||
}, 200);
|
||
|
||
pageResourceRequested = false;
|
||
pageResourceReceived = false;
|
||
|
||
casper.clickLabel('escaped', 'a');
|
||
};
|
||
|
||
casper.run(function () {
|
||
test.done();
|
||
});
|
||
});
|
||
|