Actions

Difference between revisions of "Selenium Test Case Methods"

From Joomla! Documentation

(Introduction)
Line 5: Line 5:
 
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 <code>tests/system/SeleniumJoomlaTestCase.php</code>
 
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 <code>tests/system/SeleniumJoomlaTestCase.php</code>
  
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 <code>tests/system/servers/configdef.php</code> See [[Running_Automated_Tests_for_Version_1.6#Create_a_Selenium_Configuration_File]]
+
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 <code>tests/system/servers/configdef.php</code> See [[Running_Automated_Tests_for_Version_1.6#Create_a_Selenium_Configuration_File]] These methods can also be used for creating streamlined tests by replacing common and repetitive actions.
  
 
== Available Selenium Test Case Methods ==
 
== Available Selenium Test Case Methods ==

Revision as of 14:36, 28 May 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 These methods can also be used for creating streamlined tests by replacing common and repetitive actions.

Available Selenium Test Case Methods

As of this writing, the following methods 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");
        }