An extended Webdriver Browser to navigate through Joomla sites with Codeception
Clone or download
puneet0191 Merge pull request #176 from jatitoam/locators
[imp] Added a locator getter
Latest commit c3a26e2 Sep 10, 2018

README.md

Joomla Browser (Codeception Module)

Latest Stable Version Total Downloads Latest Unstable Version License Drone

Table of Contents

The Joomla Browser

Joomla Browser is a Codeception.com Module. It allows to build system tests for a Joomla site much faster providing a set of predefined tasks.

In between the available functions you can find:

  • INSTALLATION:
    • install joomla
    • install Joomla removing Installation Folder
    • install Joomla Multilingual Site
  • ADMINISTRATOR:
    • do administrator login
    • do administrator logout
    • set error reporting to development
    • search for item
    • check for item existence
    • publish a module
    • setting a module position and publishing it
    • EXTENSION MANAGER
      • install extension from Folder
      • install extension from url
      • enable plugin
      • uninstall extension
      • search result plugin name
  • FRONTEND:
    • do frontend login
  • ADMINISTRATOR USER INTERFACE:
    • select option in chosen
    • select Option In Radio Field
    • select Multiple Options In Chosen
  • OTHERS:
    • check for php notices or warnings

The Joomla Browser is constantly evolving and more methods are being added every month. To find a full list of them check the public methods at: https://github.com/joomla-projects/joomla-browser/blob/develop/src/JoomlaBrowser.php

Joomla Browser in action

If you want to see a working example of JoomlaBrowser check weblinks tests: https://github.com/joomla-extensions/weblinks#tests

Using Instructions

Update Composer.json file in your project, and download

Download

composer require joomla-projects/joomla-browser:dev-develop

Loading the Module in Codeception

Finally make the following changes in Acceptance.suite.yml to add JoomlaBrowser as a Module.

Your original acceptance.suite.ymlprobably looks like:

modules:
    enabled:
        - WebDriver
        - AcceptanceHelper
    config:
        WebDriver:
            url: 'http://localhost/joomla-cms3/'     # the url that points to the joomla cms
            browser: 'firefox'
            window_size: 1024x768
            capabilities:
              unexpectedAlertBehaviour: 'accept'
        AcceptanceHelper:
            ...

You should remove the WebDriver module and replace it with the JoomlaBrowser module:

    config:
        JoomlaBrowser:
            url: 'http://localhost/joomla-cms/'     # the url that points to the joomla installation at /tests/system/joomla-cms
            browser: 'firefox'
            window_size: 1024x768
            capabilities:
              unexpectedAlertBehaviour: 'accept'
            username: 'admin'
            password: 'admin'
            database host: 'localhost'             # place where the Application is Hosted #server Address
            database user: 'root'                  # MySQL Server user ID, usually root
            database password: '1234'                  # MySQL Server password, usually empty or root
            database name: 'dbname'            # DB Name, at the Server
            database type: 'mysqli'                # type in lowercase one of the options: MySQL\MySQLi\PDO
            database prefix: 'jos_'                # DB Prefix for tables
            install sample data: 'Yes'              # Do you want to Download the Sample Data Along with Joomla Installation, then keep it Yes
            sample data: 'Default English (GB) Sample Data'    # Default Sample Data
            admin email: 'admin@mydomain.com'      # email Id of the Admin
            language: 'English (United Kingdom)'   # Language in which you want the Application to be Installed
            joomla folder: '/home/.../path to Joomla Folder' # Path to Joomla installation where we execute the tests
        AcceptanceHelper:
            ...

Tools

Joomla Browser comes with a set of tools added via robo.li

Code Style Checker

To check automatically the code style execute the following commands in your Terminal window at the root of the repository:

  • $ composer install
  • $ vendor/bin/robo
  • $ vendor/bin/robo check:codestyle