svenfuchs / steam

Headless integration testing w/ HtmlUnit: enables testing JavaScript-driven web sites

This URL has Read+Write access

commit  ab8fd617a18fc783cc817d7cedfa4907fdeb43ba
tree    81f0057e73dc22914a6f9df8b467109b98038453
parent  4046cb7f29e452ebac74bcb29154d6ffcbc409ec
steam /
name age message
file .gitignore Wed Oct 07 04:45:30 -0700 2009 remove test log [Clemens Kofler and Sven Fuchs]
file MIT-LICENSE Wed Nov 04 14:01:00 -0800 2009 Add readme and license [clemens]
file README Loading commit data...
file TODO Wed Nov 04 16:03:40 -0800 2009 add todo file [clemens]
directory app/ Sat Oct 03 00:28:34 -0700 2009 initial commit [svenfuchs]
directory config/ Sat Oct 03 00:28:34 -0700 2009 initial commit [svenfuchs]
directory doc/
directory example/
file init.rb
directory lib/
directory test/
README
Steam
=====

Steam is a headless integration testing tool driving HtmlUnit (http://htmlunit.sourceforge.net/) (and at some point 
potentially other browsers) which enables testing JavaScript-driven web sites.

Concept
=======

Check out the pictures in the "doc" directory to get an idea how Steam is different from a classic (Webrat) Cucumber or 
Culerity setup.

Demo
====

You can find a demo application here:

  http://github.com/clemens/steam-demo

Installation
============

Steam currently has the following dependencies:

* Working Java Runtime
* RJB (if you're on OS X, see Troubleshooting section)

After that, installing Steam for a Rails project should be as simple as typing

  $ ruby script/plugin install git://github.com/svenfuchs/steam.git

Note: Since the HtmlUnit and all the JARs it depends on come packaged with Steam, the download might take a while.

Usage
=====

You can use Steam by itself as well as with Cucumber. You can find an example for a Cucumber setup in 
examples/cucumber/env.rb.

Steam is widely compatible with Webrat - many actions are implemented and take the same or very similar parameters as 
their Webrat equivalent. You should even be able to use the default webrat_steps.rb that ships with Cucumber.

Troubleshooting
===============

Installing RJB on Mac OS X:

  http://www.elctech.com/articles/sudo-java_home-and-mac-os-x

The visudo way worked for us. Don't forget to add yourself to the sudoers file, though.

Acknowledgements
================

Kudos to Alexander Lang (http://github.com/langalex) for writing Culerity (http://github.com/langalex/culerity) which 
pioneered full-stack AJAX-enabled integration testing in Rails.

Developers
==========

Sven Fuchs <svenfuchs@artweb-design.de>
Clemens Kofler <clemens@railway.at>