Actions

Difference between revisions of "Selenium Test Case Methods"

From Joomla! Documentation

(Available Selenium Test Case Methods)
Line 9: Line 9:
  
 
== Available Selenium Test Case Methods ==
 
== Available Selenium Test Case Methods ==
As of this writing, there are seven methods that belong to the SeleniumJoomlaTestCase class.
+
As of this writing, the following methods that belong to the SeleniumJoomlaTestCase class.
  
 +
* setUp()
 
* doAdminLogin()
 
* doAdminLogin()
 
* doAdminLogout()
 
* doAdminLogout()
Line 18: Line 19:
 
* doFrontEndLogout()
 
* doFrontEndLogout()
 
* setTinyText($text)
 
* setTinyText($text)
 +
 +
=== setUp ===
 +
* Loads the configuration variables defined in <code>tests/system/servers/configdef.php</code> and launches the test browser accordingly.
 +
 +
<pre> public function setUp()
 +
{
 +
$cfg = new SeleniumConfig();
 +
$this->cfg = $cfg; // save current configuration
 +
$this->setBrowser($cfg->browser);
 +
$this->setBrowserUrl($cfg->host.$cfg->path);
 +
if(isset($cfg->selhost)) {
 +
$this->setHost($cfg->selhost);
 +
}
 +
echo ".\n".'Starting '.get_class($this).".\n";
 +
}</pre>
  
 
=== doAdminLogin ===
 
=== doAdminLogin ===

Revision as of 19:11, 10 February 2010


Contents

News and Updates

2010 02 10 : Initial draft of this article

Introduction

With the introduction of System tests in February 2010, there are also a number of Joomla! specific methods that can be used. These methods are part of the SeleniumJoomlaTestCase class, as defined by the file tests/system/SeleniumJoomlaTestCase.php

These methods exist so that none of the path or login information is coded into the tests. Instead, it comes from the config file located at tests/system/servers/configdef.php See Running_Automated_Tests_for_Version_1.6#Create_a_Selenium_Configuration_File

Available Selenium Test Case Methods

As of this writing, the following methods that belong to the SeleniumJoomlaTestCase class.

  • setUp()
  • doAdminLogin()
  • doAdminLogout()
  • gotoAdmin()
  • gotoSite()
  • doFrontEndLogin()
  • doFrontEndLogout()
  • setTinyText($text)

setUp

  • Loads the configuration variables defined in tests/system/servers/configdef.php and launches the test browser accordingly.
   public function setUp()
        {
                $cfg = new SeleniumConfig();
                $this->cfg = $cfg; // save current configuration
                $this->setBrowser($cfg->browser);
                $this->setBrowserUrl($cfg->host.$cfg->path);
                if(isset($cfg->selhost)) {
                        $this->setHost($cfg->selhost);
                }
                echo ".\n".'Starting '.get_class($this).".\n";
        }

doAdminLogin

  • Logs into the administrative side of Joomla!
   function doAdminLogin()
        {
                //$this->setUp();
                echo "Logging in to admin.\n";
                $cfg = new SeleniumConfig();
                $this->open($cfg->path . "administrator/index.php?option=com_login");
                $this->waitForPageToLoad("30000");
                $this->type("mod-login-username", $cfg->username);
                $this->type("mod-login-password", $cfg->password);
                $this->click("link=Log in");
                $this->waitForPageToLoad("30000");
        }

doAdminLogout

  • Logs out of the administrative side of Joomla!
   function doAdminLogout()
        {
                $this->gotoAdmin();
                echo "Logging out of back end.\n";
                $this->click("link=Logout");
        }

gotoAdmin

  • Navigates to the administrative side of Joomla!
   function gotoAdmin()
        {
                echo "Browsing to admin.\n";
                $cfg = new SeleniumConfig();
                $this->open($cfg->path . "administrator");
        }

gotoSite

  • Navigates to the front end of Joomla!
   function gotoSite()
        {
                echo "Browsing to site.\n";
                $cfg = new SeleniumConfig();
                $this->open($cfg->path);
        }

doFrontEndLogin

  • Logs into the front end of Joomla!
   function doFrontEndLogin()
        {
                $this->gotoSite();
                echo "Logging into front end of site.\n";
                $this->type("modlgn_username", "admin");
                $this->type("modlgn_passwd", "password");
                $this->click("Submit");
                $this->waitForPageToLoad("30000");
        }

doFrontEndLogout

  • Logs out of the front end of Joomla!
   function doFrontEndLogout()
        {
                $this->gotoSite();
                echo "Logging out of front end of site.\n";
                $this->click("Submit");
                $this->waitForPageToLoad("30000");
        }

setTinyText

  • Allows the test to input data
   function setTinyText($text)
        {
                $this->selectFrame("text_ifr");
                $this->type("tinymce", $text);
                $this->selectFrame("relative=top");
        }