Skip to content

About

Browser testing for October CMS, powered by Laravel Dusk.

Resources

Stars

3 stars

Watchers

3 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

Repository files navigation

Dusk Plugin

Browser testing for October CMS, powered by Laravel Dusk.

Installation Instructions

To install with Composer, run from your project root

composer require rainlab/dusk-plugin

If using the latest version of Chrome, install the latest version of ChromeDriver for your OS.

php artisan dusk:chrome-driver

Otherwise, check the version of the Chrome browser you have installed, and install a given version of ChromeDriver for your OS.

php artisan dusk:chrome-driver 86

Defining Tests

To make your first test, create a new class inside the tests/browser folder of your plugin. The following will authenticate to the backend panel and sign out again.

// File: plugins/acme/blog/tests/browser/AuthenticationTest.php
//
class AuthenticationTest extends BrowserTestCase
{
    public function testAuthentication()
    {
        $this->browse(function($browser) {
            $browser
                ->visit('/admin')
                ->waitForLocation('/admin/backend/auth/signin')
                ->assertTitleContains('Administration Area |')
                ->type('login', env('DUSK_ADMIN_USER', 'admin'))
                ->type('password', env('DUSK_ADMIN_PASS', 'admin'))
                ->check('remember')
                ->press('Login');

            $browser
                ->waitForLocation('/admin/dashboard')
                ->assertTitleContains('Dashboard |')
                ->click('#layout-mainmenu .mainmenu-account > a')
                ->clickLink('Sign Out');

            $browser
                ->waitForLocation('/admin/backend/auth/signin')
                ->assertTitleContains('Administration Area |');
        });
    }
}

Creating Environment File

The .env.dusk environment file can be used for Dusk specific configuration. It is advisable to include the application URL to test in this file, along with the administrator credentials used by the example test above.

APP_URL=http://mylocalsite.dev/
DUSK_ADMIN_USER=admin
DUSK_ADMIN_PASS=admin

Running Tests

Use the test:dusk artisan command to run the dusk tests for a plugin code (first argument).

php artisan test:dusk <PLUGIN CODE>

The following runs tests for the Acme.Blog plugin.

php artisan test:dusk acme.blog

Use the --browse to enable interactive mode.

php artisan test:dusk acme.blog --browse

Use the --filter option to run a single test where the value is the test class name.

php artisan test:dusk acme.blog --filter=AuthenticationTest

End to End Example

Follow these instructions to get a test up and running.

  1. Install the latest version of Chrome browser

  2. Install a fresh copy of October CMS

  3. Install this plugin composer require rainlab/dusk-plugin

  4. Install latest chrome driver php artisan dusk:chrome-driver

  5. Create a plugin to hold the tests php artisan create:plugin Acme.Blog

  6. Save the AuthenticationTest class from Defining Tests as plugins/acme/blog/tests/browser/AuthenticationTest.php

  7. Create a file .env.dusk and include APP_URL=http://yourlocaldev.tld inside, along with DUSK_ADMIN_USER and DUSK_ADMIN_PASS if your administrator is not admin/admin

  8. Run tests php artisan test:dusk acme.blog --browse

See Also

License

This plugin is an official extension of the October CMS platform and is free to use if you have a platform license. See EULA license for more details.

About

Browser testing for October CMS, powered by Laravel Dusk.

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages