Search code examples
node.jszombie.js

Zombiejs how using with specifity situations


I started using zombiejs, but i have some begginer questions:

1.) How testing ajax calls ? For example i have php ajax action (Zend)

 public function ajaxSomeAction()
 {
    $oRequest = $this->getRequest();
    if($oRequest->isXmlHttpRequest() === false || $oRequest->isPost() === false) {
        throw new Zend_Controller_Action_Exception('Only AJAX & POST request accepted', 400);
    }

  //process check params...
 }

My zombiejs testing code throws http 400.

2.) How fire jquery plugins public methods ? For example i have code:

(function($) {

 $.manager.addInvitation = function()
 {
    //some code ....
 }

 $.manager = function(options)
 {
    //some code
 }
})(jQuery);

I try:

Browser.visit(url, function(err, browser, status) 
{
   // not work
   browser.window.jQuery.manager.addInviation();

   // also not work
   browser.document.jQuery.manager.addInvitation();
   browser.window.$.manager.addInvitation();
   browser.evaluate('$.manager.addInvitation();');

})

3.) How modifiy header with zombiejs ? For exmaple i want add header x-performace-bot:zombie1 to request send using visit method

Browser = require('zombie');
Browser.visit(url, {debug:true}, function(err, browser, status) 
{
    //send request witch header x-performace-bot
});

Solution

  • After quick testing (on zombie 0.4.21):

    ad 1. As you're checking ($oRequest->isXmlHttpRequest()) if request is an xml http request, you have to specify (in zombie) X-Requested-With header with a value of XMLHttpRequest.

    ad 2.

    // works for me (logs jQuery function - meaning it's there)
    console.log( browser.window.jQuery );
    // that works to...
    browser.window.$
    

    Your code must be undefined or there are some other errors in Javascript on your page.

    ad 3. There's a header option, which you can pass just as you do with debug.