This is a test script for actions in the workbench.

File Actions ..
	Invoke File New .. projects, items, other.
	Invoke Toolbar button for File New .. projects, items, other.
	Verify close and save action enablement with 
		- no editors open
		- one editor
		- one dirty editor
		- after revert
		- two editors
		- two dirty editors
		- after close all
	Verify actions when switching between perspectives ( one with dirty 
		editor, other without ).
	Verify after all perspectives closed.
	Open many editors, close all, test MRU list.
	Open an editor and try to print the contents.
	
Edit Actions ..
	Verify global actions track global part.
	Verify editor contributions appear in action bars when is opened.
	Verify editors of same type reuse contributions.
	Verify editors of different type cause contribution change.
	Verify editor contributions are removed when editor is closed.
	Verify edit actions are consistent when switching between perspectives.

Perspective Actions ..
	Open = always enabled
	Verify other actions only enabled when a perspective is open.
	Verify "open new window", "open perspective"
	Verify "Save As" by modifying current persp, save as, close, reopen.
	Verify "Reset" by modifying current persp, then reset.
	Test Workbench/Perspectives preference page.
	Hide Editors, Show Editors
	Hide Editors, Open new editor, verify implicit show editors.
	
Action Sets ..
	Confirm order is consistent.  Add all actions, record order, 
		then remove and re-add.  Select action sets to verify order.
	Test Customization of File New, Perspective Open, and Show View.
	Confirm editor actions have consistent place ..
		- start with no editors
		- show x action sets
		- open editor, verify editor actions after sets
		- hide x action sets
		- show x action sets
	Verify action set order persisted between sessions.
