wiki.techinc.nl/tests/selenium
Thiemo Kreuz 3b03ea9bdc Add browser test for preview functionality to MediaWiki core
The basic functionality of being able to preview an edit is currently
not covered by a test, as far as I can see.

The assertion for a wpTextbox2 that should *not* be there is a result of
the issue documented at T209012, where the EditPage::isConflict flag was
accidentially set. This assertion makes sure accidential conflicts can't
happen again, no matter which extension might cause it.

Bug: T210758
Change-Id: Iae723430b3a88079ad3499429e65c29817eca67e
2018-12-07 16:27:45 +01:00
..
pageobjects Add browser test for preview functionality to MediaWiki core 2018-12-07 16:27:45 +01:00
specs Add browser test for preview functionality to MediaWiki core 2018-12-07 16:27:45 +01:00
wdio-mediawiki build: Use eslint-config-wikimedia v0.9.0 and make pass 2018-11-23 14:20:24 +00:00
.eslintrc.json build: Use eslint-config-wikimedia v0.9.0 and make pass 2018-11-23 14:20:24 +00:00
README.md Selenium: record video of every test 2018-10-16 22:07:22 +00:00
selenium.sh Use wd/hub not /wd/hub in selenium.sh 2018-06-13 11:56:15 +00:00
wdio.conf.js Selenium: record video of every test 2018-10-16 22:07:22 +00:00

Selenium tests

Prerequisites

If using MediaWiki-Vagrant:

cd mediawiki/vagrant
vagrant up

Installation

cd mediawiki
npm install

Usage

npm run selenium

There are three supported modes of running the tests:

  • Headless. It's the default. You will not see the browser while tests are running because it's running in a headless mode. This mode should run fine on all supported platforms.
  • Headless recording. Set DISPLAY environment variable to a value that starts with colon (:) and video of each test will be recorded. Browser will run headless. Recording videos works only on Linux.
  • Visible. If you want to see the browser, set DISPLAY environment variable to any value that does not start with colon. This mode will not work in a headless environment like MediaWiki-Vagrant.

Example recording session:

sudo apt-get install chromedriver ffmpeg xvfb
export DISPLAY=:94
Xvfb "$DISPLAY" -screen 0 1280x1024x24 &
npm run selenium

Example visible session:

DISPLAY=1 npm run selenium

To run only one test (for example specs/page.js), you first need to start Chromedriver:

chromedriver --url-base=wd/hub --port=4444

Then, in another terminal:

npm run selenium-test -- --spec tests/selenium/specs/page.js

You can also filter specific cases, for ones that contain the string 'preferences':

npm run selenium-test -- tests/selenium/specs/user.js --mochaOpts.grep preferences

The runner reads the configuration from wdio.conf.js. The defaults target a MediaWiki-Vagrant installation on http://127.0.0.1:8080 with a user "Admin" and password "vagrant". Those settings can be overridden using environment variables:

  • MW_SERVER: to be set to the value of your $wgServer
  • MW_SCRIPT_PATH: ditto with $wgScriptPath
  • MEDIAWIKI_USER: username of an account that can create users on the wiki
  • MEDIAWIKI_PASSWORD: password for above user

Example:

MW_SERVER=http://example.org MW_SCRIPT_PATH=/dev/w npm run selenium

Further reading