Hi,

Since we really need to have automated tests for the new WYSIWYG from  
the onset here are some ideas I'd like to have:

1) It should use Selenium and we need to run it on different browsers  
(FF2, FF3, IE6, IE7, IE8 minimum).
2) We need to develop a complete DSL for entering data in the editor  
(typeText, moveCursorLeft, clickBold, insertLink, etc). These commands  
sent in the test should be independent of the editor technology, which  
means I should be able to run the same test in the current TinyMCE  
editor or in the new GWT editor or in any future editor. This is  
important so that we can capitalize on our editor test suite.

Note: The goal is not to run the tests on the Tiny MCE editor  
(although that would be possible) but more to ensure that our tests  
are as solid as possible for the future and as easy to write as  
possible.

3) As a consequence the asserts done in the test should be on the  
generated XHTML (i.e. including the HTMLCleaner for the GWT editor)  
since otherwise there would be too many differences between editors.
4) Each editor should have its test suite where it can specify which  
test to run (since some features are available in the new GWT editor  
for ex but not in the tinyMCE one)
5) Writing a new test should take less than 5 minutes without even the  
need to run the test in the editor to prepare it. This means the DSL  
should be simple and expressive. For example here's an example of a  
test:

testVerifyCanDeleteList()
{
     typeText("a");
     selectBulletedList();
     moveCursorLeft();
     typeBackspace();
     assertXHTML("<p>a</p>");
}

Note: This test is not taken at random since it currently doesn't  
pass ;)

6) Tests must be deterministic (i.e each action should verify that the  
action has worked before continuing. For example a typeText should  
have a wait on the type text in the page)

WDYT?

Thanks
-Vincent

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to