-------------------------------------------------------------------------------
dojox.robot.recorder
-------------------------------------------------------------------------------
Version 0.1
Release date: 2008-07-30
-------------------------------------------------------------------------------
Project state: experimental
-------------------------------------------------------------------------------
Project authors
	Mark Hays
-------------------------------------------------------------------------------
Project description

Writing automated test cases takes time, and DOH is no exception. You have to
look up element ids, invent dojo.queries for elements with no id,
figure out exactly how many pixels to move the mouse . . . the list goes on.

This recorder module enables DOH test case writers to create complete DOH test
scripts directly from their actions and input on a Web page. Simply drop the
generated code into your test page, set a pass condition, and the test will
repeat your actions.
-------------------------------------------------------------------------------
Dependencies:

dojo
-------------------------------------------------------------------------------
Documentation

See installation instructions below to prepare a test page for recording.

To record a test, click in an area of the document with no dojo.stopEvents
and press CTRL-ALT-ENTER in the main window. You will get a verification alert
when you successfully start the recorder. Then you can interact with the Web
page and the recorder will monitor your actions. It's usually good to record one
test per widget instance per type of interaction (keyboard vs mouse for instance)
you are testing.

After you finish interacting with the Web page, click out of any dojo.stopEvents
and press CTRL-ALT-ENTER again. You will see a box containing the generated source 
code for your recording. Copy this into a dojo.addOnLoad on the same page to register 
the test with DOH. Replace the /*Your condition here*/ text with a JS condition that
indicates that the test passed. Again, having multiple small tests will help you
keep the condition small. Add a doh.run() call after you register all of your tests
to make them execute when you load the page.
-------------------------------------------------------------------------------
Installation instructions

To ready the recorder for a particular page, add this line to your dojo.requires:
dojo.require("dojox.robot.recorder");

You can safely remove this line after you are finished recording your tests.
-------------------------------------------------------------------------------
Additional Notes

Known limitations:
- Content in an iframe might not report events to the recorder.
- keyDown/keyUp events are supported by DOH, but not by the recorder.
	If you hold a key down, it will generate lots of keyPress events instead.
	Simply change these to one keyDown call yourself.
