phpmyadmin/test
Maurício Meneghini Fauth 2625e0e1f6
Replace .caution and .success CSS classes
Replaces with .text-danger and .text-success.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2020-12-23 19:37:52 -03:00
..
classes Replace .caution and .success CSS classes 2020-12-23 19:37:52 -03:00
selenium Typo fixes in the JS codebase with VS code "code spell checker" 2020-11-12 23:27:57 +01:00
test_data Fix some coding standard issues 2020-05-25 22:42:37 -03:00
bootstrap-dist.php Fix #16237 - Logo missing in upper left corner of navigation panel 2020-07-01 13:55:11 +02:00
bootstrap-static.php Use PHPStan's new autoloading configuration setup 2020-06-08 16:27:56 -03:00
ci-docs Add documentation checks to be executed in Travis CI 2016-10-18 10:26:33 +02:00
ci-phplint Add PHP_CodeSniffer and ESLint to Travis CI 2018-05-02 19:29:34 -03:00
config.e2e.inc.php Fix some coding standard issues 2020-05-25 22:42:37 -03:00
doctum-config.php Upgrade Doctum to ^5.3.0 2020-12-21 15:10:30 +01:00
nginx.conf Make start-local-server not depend on BrowserStack and improve logging of nginx server 2020-05-13 22:28:46 +02:00
php-fpm.conf Run php-fpm as nobody 2020-06-10 01:27:22 +02:00
php.ini Remove all references to deprecated extension mcrypt 2020-04-05 20:57:07 +02:00
phpstan-constants.php Use PHPStan's new autoloading configuration setup 2020-06-08 16:27:56 -03:00
README.rst Update and fix the test/README 2020-06-10 01:27:22 +02:00
start-local-server Allow local usage of ./test/start-local-server 2020-06-10 01:27:22 +02:00
stop-local-server Support selenium-standalone mode and use docker 2020-06-10 01:27:22 +02:00

PhpMyAdmin test suite
=====================

This directory is protected from web visitors by a .htaccess file.

For more information on allowing http access to this directory see:
https://httpd.apache.org/docs/current/mod/mod_authz_host.html#allow

Please visit the wiki for more information on unit testing:
https://wiki.phpmyadmin.net/pma/Unit_Testing

Selenium tests
--------------

To be able to run Selenium tests, you need to have webserver, database
and Selenium running. Following environment variables configure where
testsuite connects:

TESTSUITE_USER
    Username to connect on the interface located at TESTSUITE_URL
TESTSUITE_PASSWORD
    Password to connect on the interface located at TESTSUITE_URL
TESTSUITE_DATABASE_PREFIX
    Database prefix to use for testing (Avoid database grouping characters like _).
TESTSUITE_URL
    URL where tested phpMyAdmin is available.

Additionally you need to configure link to Selenium and browsers. You
can either setup Selenium locally or use BrowserStack automated testing.

For local setup, define following:

TESTSUITE_SELENIUM_HOST
    Host where Selenium is running.
TESTSUITE_SELENIUM_PORT
    Port where to connect.
TESTSUITE_SELENIUM_BROWSER
    Browser to use for testing inside Selenium.

With BrowserStack, set following:

TESTSUITE_BROWSERSTACK_USER
    BrowserStack username.
TESTSUITE_BROWSERSTACK_KEY
    BrowserStack access key.

For example you can use following setup in ``phpunit.xml``::

    <php>
        <env name="TESTSUITE_SERVER" value="localhost"/>
        <env name="TESTSUITE_USER" value="root"/>
        <env name="TESTSUITE_PASSWORD" value="root"/>
        <env name="TESTSUITE_DATABASE" value="test"/>
        <env name="TESTSUITE_URL" value="http://localhost/phpmyadmin/" />
        <env name="TESTSUITE_SELENIUM_HOST" value="127.0.0.1" />
        <env name="TESTSUITE_SELENIUM_PORT" value="4444" />
    </php>

Using BrowserStack
------------------

We're using BrowserStack to run our tests on the Travis CI. If you are a team
member, you can be granted access to the team account, but you can register own
account there as well.

To run tests locally, you need to install BrowserStack tool to enable local
testing, see their website for instructions:

https://www.browserstack.com/local-testing#command-line

Following instructions use PHP's built in server for the testing::

    # Export BrowserStack credentials in the environment:
    export TESTSUITE_BROWSERSTACK_USER=your_username
    export TESTSUITE_BROWSERSTACK_KEY=your_key

    # Port where tests will be running
    export TESTSUITE_PORT=9000
    export TESTSUITE_URL=http://127.0.0.1:$TESTSUITE_PORT/

    # Start PHP built in server
    php --server 127.0.0.1:$TESTSUITE_PORT > php.log &

    # Start BrowserStack Local client to forward the traffic
    ~/browserstack/BrowserStackLocal -localIdentifier Manual "$TESTSUITE_BROWSERSTACK_KEY" 127.0.0.1,$TESTSUITE_PORT,0 &

    # Stop BrowserStack Local
    ~/browserstack/BrowserStackLocal --daemon stop