This is a test list for the text editor.

Presentation
	Verify that appropriate strings appear in all menu items and text fields.
	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.

Editor Actions
	Verify that Cut and Copy are enabled iff there is selected text.
	Verify that Paste is enabled iff there is text in the clipboard buffer.
	Verify that Cut, Copy, Paste, Select-All work correctly.
	Verify that Revert is enabled only if is the file dirty and works correctly.

Edit Menu Actions
	Verify that the enablement and action of Cut, Copy, Paste, and Select-All in the Edit menu are consistent with those in the editor's context menu.

Persistence	
	The editor is marked dirty if the text is modified by either the keyboard OR the editor actions.
	The editor is marked clean after either saving the file or reverting it.