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 |
||
|---|---|---|
| .. | ||
| pageobjects | ||
| specs | ||
| wdio-mediawiki | ||
| .eslintrc.json | ||
| README.md | ||
| selenium.sh | ||
| wdio.conf.js | ||
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 $wgServerMW_SCRIPT_PATH: ditto with $wgScriptPathMEDIAWIKI_USER: username of an account that can create users on the wikiMEDIAWIKI_PASSWORD: password for above user
Example:
MW_SERVER=http://example.org MW_SCRIPT_PATH=/dev/w npm run selenium