diff --git a/bridge.js b/bridge.js index f48f22e..aab26d5 100644 --- a/bridge.js +++ b/bridge.js @@ -74,6 +74,14 @@ controlpage.onAlert=function(msg){ respond([id, cmdId, 'pageOpened', status]); }); break; + case 'pagePost': + page.open(request[3], 'post', request[4]); + break; + case 'pagePostWithCallback': + page.open(request[3], 'post', request[4], function(status){ + respond([id, cmdId, 'pageOpened', status]); + }); + break; case 'pageClose': page.close(); respond([id,cmdId,'pageClosed']); diff --git a/node-phantom.js b/node-phantom.js index 8d8f31d..0091d54 100644 --- a/node-phantom.js +++ b/node-phantom.js @@ -92,6 +92,13 @@ module.exports={ request(socket, [id, 'pageOpenWithCallback', url], callback); } }, + post:function(url, data, callback){ + if(callback === undefined){ + request(socket, [id, 'pagePost', url, data]); + }else{ + request(socket, [id, 'pagePostWithCallback', url, data], callback); + } + }, close:function(callback){ request(socket,[id,'pageClose'],callbackOrDummy(callback)); }, diff --git a/test/testpagepost.js b/test/testpagepost.js new file mode 100644 index 0000000..34c63f8 --- /dev/null +++ b/test/testpagepost.js @@ -0,0 +1,23 @@ +var http=require('http'); +var phantom=require('../node-phantom'); + +var server=http.createServer(function(request,response){ + response.writeHead(200,{"Content-Type": "text/html"}); + response.end('Hello World'); +}).listen(); + +exports.testPhantomPageOpen=function(beforeExit,assert){ + phantom.create(function(error,ph){ + assert.ifError(error); + ph.createPage(function(err,page){ + assert.ifError(err); + var data = "test=test"; + page.post('http://localhost:'+server.address().port,data,function(err,status){ + assert.ifError(err); + assert.equal(status,'success'); + server.close(); + ph.exit(); + }); + }); + }); +};