Port the test to change the URL of network request.

https://github.com/ariya/phantomjs/issues/12439
2.0
Ariya Hidayat 2014-09-12 23:29:40 -05:00
parent dca6f77a36
commit 3b972fbfbb
3 changed files with 34 additions and 35 deletions

View File

@ -0,0 +1,33 @@
var assert = require('../../assert');
var webpage = require('webpage');
var page = webpage.create();
var urlToChange = 'http://localhost:9180/logo.png';
var alternativeUrl = 'http://localhost:9180/phantomjs-logo.gif';
var startStage = 0;
var endStage = 0;
page.onResourceRequested = function(requestData, request) {
if (requestData.url === urlToChange) {
assert.typeOf(request, 'object');
assert.typeOf(request.changeUrl, 'function');
request.changeUrl(alternativeUrl);
}
};
page.onResourceReceived = function(data) {
if (data.url === alternativeUrl && data.stage === 'start') {
++startStage;
}
if (data.url === alternativeUrl && data.stage === 'end') {
++endStage;
}
};
page.open('http://localhost:9180/logo.html', function (status) {
assert.equal(status, 'success');
assert.equal(startStage, 1);
assert.equal(endStage, 1);
assert.equal(page.content.match('logo.png'), 'logo.png');
});

View File

@ -33,6 +33,7 @@ TESTS = [
'module/webpage/remove-header.js',
'module/webpage/modify-header.js',
'module/webpage/repaint-requested.js',
'module/webpage/change-request-url.js',
'module/webpage/abort-network-request.js',
'module/webpage/resource-request-error.js',
'module/webpage/resource-received-error.js',

View File

@ -1208,41 +1208,6 @@ describe("WebPage object", function() {
});
});
it('should change the url of the request', function() {
var page = require('webpage').create();
var url = 'http://phantomjs.org';
var urlToChange = 'http://phantomjs.org/img/phantomjs-logo.png';
var alternativeUrl = 'http://phantomjs.org/img/icon-release.png';
var handled = false;
runs(function() {
page.onResourceRequested = function(requestData, request) {
if (requestData['url'] == urlToChange) {
expect(typeof request).toEqual('object');
expect(typeof request.changeUrl).toEqual('function');
request.changeUrl(alternativeUrl);
}
};
page.onResourceReceived = function(data) {
if (data['stage'] === 'end' && data['url'] == alternativeUrl) {
handled = true;
}
};
page.open(url, function(status) {
expect(status).toEqual('success');
});
});
waits(3000);
runs(function() {
expect(handled).toBe(true);
});
});
xit("should interrupt a long-running JavaScript code", function() {
var page = new WebPage();
var longRunningScriptCalled = false;