I put some effort the last few days in this new framework.



Selenium test suite do not accept a baseurl (or only a part of it) so I have a full path like /Joomla1.5.7/installation/index.php in a selenium test case instead of /installation/index.php in test case and baseurl= http://localhost/Joomla1.5.7)


3rd Party

  • I use antelope for some advance ANT operations: substring, indexof, loop
  • I use selenium java server on port 4444 (default)


All cluster operations are in cluster.xml these basic functions are

  • cluster.init
    • cluster.remove&160;&160;&160;&160;&160;&160;&160; remove all instances of Joomla! in checkout directory
    • joomla.unpack.all&160;&160;&160; unpack all Joomla! versions that are checked in another SVN root
    • joomla.install.all&160;&160;&160;&160;&160; run the same selenium test case joomla.install.html on all Joomla! instance
    • joomla.remove.all.installation&160;&160; remove all Joomla! installation directories
    • joomla.check.all&160;&160;&160;&160; check all Joomla! installations for correctness
  • cluster.start
  • cluster.remove
  • cluster.stop


All Joomla specific operations are in joomla.library.xml

  • Unpack a Joomla! version
  • Remove the installation directory form a version
  • Apply a selenium test suite install.joomla.html that can use the regular Joomla! installer
  • Is also able to do all of the above on all Joomla! versions found (regular expression) in checkout directory


  • All selenium operations are in selenium.xml
  • All test suite and test cases are in /selenium/joomla/


All PHPUnit operation are in phpunit.xml


Settings are in setEnv.xml, in future I will lazy load a file if it exist as environment variable


If you know ANT, the code is quite readable...