Run your Javascript anywhere.
JavaScript
Latest commit d0b6109 Jul 9, 2012 @admc Merge pull request #13 from fabiomcosta/patch-2
This is the correct way of launching google chrome. If the `--homepage` ...
Permalink
Failed to load latest commit information.
lib This is the correct way of launching google chrome. If the `--homepag… Jul 7, 2012
static Making the jfComplete not disable future May 4, 2011
test Updating the sauce test Oct 1, 2011
LICENSE
README.md the process.exit function was being called right away, the timeout wa… Jul 7, 2012
jfrc-example Adding example Apr 29, 2011
package.json publishing a version with new reqs Dec 9, 2011

README.md

Jellyfish -- Browser launcher and Javascript execution engine.

Jellyfish bridges the gap between server and client side javascript by allowing control of all the major browsers from a node script.

From running unit tests across platforms, to automating browser based workflows, jellyfish aims to free javascript from the confines of a single environment.

Install

npm install jellyfish

Or from source:

git clone git://github.com/admc/jellyfish.git 
cd jellyfish
npm link .

Platforms

MacOSX 10.6
Ubuntu 10.x

Browsers

Firefox 3.x, 4b
Google Chrome
Safari (MacOSX)
Selenium 2/WebDriver
Sauce Labs OnDemand
Zombie (headless node.js browser)

(Provides hooks to Saucelabs OnDemand platform allowing execution in all major browsers.)

Usage

npm require

var jellyfish = require('jellyfish'),
  , assert = require('assert');

init a browser (createFirefox, createChrome, createZombie)

var browser = jellyfish.createFirefox();

goto a web site

browser.go("http://www.jelly.io")

verify the title

.js("document.title", function(o) {
  assert.equal(o.result, "Jelly.io: Jellyfish Home")
})

run some local javascript

.jsfile("./test.js", function(o) {
  assert.equal(o.result, "alerted: Jellyfish local file loaded successfully!")
})

run some remote javascript, stop the browser, then exit

.jsurl("http://jelly.io/test.js", function(o) { 
  assert.equal(o.result, "alerted: Jellyfish remote file loaded successfully!")
  browser.stop(function() {
    setTimeout(process.exit, 2000);
  })
})

Reporting

var jellyfish = require('jellyfish')

var browser = jellyfish.createFirefox(function(){
  browser.couch({uri:'my couch url', port:5984, db:'mydbname'})
});

// You can just do browser.couch() and it will default to:
// {uri:'localhost', port:5984, db:'jellyfish'}

// Do stuff and it will automatically get reported to couch!

~/.jfrc

{
  , "firefox": "/path/to/binary" //binary path to firefox if you want to set it manually
  , "chrome": "path/to/binary" //binary path
  , "safari": "path/to/binary" //binary path
  , "interface": "Airport" // required for safari testing (proxy setting)
  , "username": "username" //sauce labs username
  , "accessKey": "apikey" //sauce labs apikey
  , "browserName": "firefox" //sauce labs default browser
  , "version": "4.0" // sauce labs default browser version
}