gecko-dev/testing/web-platform/tests
2018-06-05 11:42:00 +02:00
..
.well-known Bug 1458527 [wpt PR 10761] - Add .well-known/idp-proxy/OWNERS, a=testonly 2018-05-22 09:40:40 +00:00
2dcontext Bug 1458540 [wpt PR 10767] - Add 2dcontext/OWNERS and offscreen-canvas/OWNERS, a=testonly 2018-05-20 19:20:17 +00:00
accelerometer Bug 1449277 [wpt PR 10198] - Enable WPT tests for the Generic Sensor classes, a=testonly 2018-05-16 15:04:49 +00:00
accname Bug 1460756 [wpt PR 10956] - Accname: Remove two tests, a=testonly 2018-05-18 11:15:13 +01:00
acid Bug 1459723 [wpt PR 10878] - Improve definition of non-existent origin, a=testonly 2018-05-18 11:15:13 +01:00
ambient-light Bug 1446275 [wpt PR 10068] - Revert "rename generic-sensor directory as sensors", a=testonly 2018-04-15 08:34:19 +01:00
annotation-model Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
annotation-protocol
annotation-vocab Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
apng Bug 1458623 [wpt PR 10777] - Add apng/OWNERS, a=testonly 2018-05-20 19:19:42 +00:00
async-local-storage Bug 1458388 [wpt PR 10744] - [Layered API] Implement std:async-local-storage behind a flag, a=testonly 2018-05-14 09:55:06 +00:00
audio-output Bug 1458596 [wpt PR 10783] - Add audio-output/OWNERS, a=testonly 2018-05-20 19:19:52 +00:00
background-fetch Bug 1452643 [wpt PR 9751] - Update the BackgroundSync IDL file, a=testonly 2018-04-15 09:31:57 +01:00
BackgroundSync Bug 1452672 [wpt PR 10381] - Support adding Idlharness dependencies, a=testonly 2018-05-22 09:40:31 +00:00
battery-status Bug 1464491 [wpt PR 9761] - Update the battery IDL file, a=testonly 2018-06-05 15:14:53 +01:00
beacon Bug 1462478 [wpt PR 11053] - Update sendBeacon test case array to include recently added test cases, a=testonly 2018-05-22 09:40:25 +00:00
bluetooth Bug 1447862 [wpt PR 10130] - Make BlueTooth/USB requestDevice non-consuming., a=testonly 2018-04-15 09:37:06 +01:00
budget-api Bug 1458516 [wpt PR 10758] - Add budget-api/OWNERS, a=testonly 2018-05-14 09:54:58 +00:00
clear-site-data Bug 1458608 [wpt PR 10787] - Add clear-site-data/OWNERS, a=testonly 2018-05-18 11:15:13 +01:00
client-hints Bug 1462513 [wpt PR 11059] - Add more tests for Netinfo client hints, a=testonly 2018-05-22 09:40:32 +00:00
clipboard-apis Bug 1452296 [wpt PR 10285] - Check inherited interfaces exist, a=testonly 2018-04-15 09:30:53 +01:00
common Bug 1461925 [wpt PR 11028] - Generalize subsetTest() in common/ and use for WebCryptoAPI tests, a=testonly 2018-05-20 19:18:36 +00:00
compat Bug 1461927 [wpt PR 11027] - Enumerate aliases on CSSPropertyDeclaration., a=testonly 2018-05-22 09:40:34 +00:00
conformance-checkers Bug 1448295 [wpt PR 10155] - cc Update messages.json, a=testonly 2018-04-15 08:35:22 +01:00
console Bug 1458096 [wpt PR 10722] - Add console.countReset manual test, a=testonly 2018-05-18 11:15:13 +01:00
content-security-policy Bug 1466508: Fix race condition within wpt test policy-inherited-correctly-by-plznavigate.html part 2. r=bz 2018-06-05 11:42:00 +02:00
cookie-store Bug 1460490 [wpt PR 10946] - Async Cookies: Change events in service workers., a=testonly 2018-05-18 11:15:13 +01:00
cookies Bug 1458876 [wpt PR 10822] - Rfc6265bis tests, a=testonly 2018-05-14 09:55:19 +00:00
core-aam Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
cors Bug 1463682 [wpt PR 11116] - Run autopep8 on *.py in cors, fetch and xhr, a=testonly 2018-06-05 15:14:50 +01:00
credential-management Bug 1458578 [wpt PR 10781] - Add credential-management/OWNERS, a=testonly 2018-05-20 19:19:08 +00:00
css Bug 1465572: Ensure <slot> disables whitespace optimizations. r=bz 2018-06-02 09:35:19 +02:00
custom-elements Bug 1450754 [wpt PR 10272] - Fix customElements.upgrade() tests for <template>, a=testonly 2018-04-15 09:25:14 +01:00
device-memory Bug 1458603 [wpt PR 10785] - Add device-memory/OWNERS, a=testonly 2018-05-20 19:20:01 +00:00
docs Bug 1459801 [wpt PR 10882] - Documentation/Tutorial for adding a command to testdriver, a=testonly 2018-05-22 09:40:38 +00:00
dom Bug 1458279 [wpt PR 10735] - Test that non-Text nodes are not touched by normalization., a=testonly 2018-05-14 09:55:40 +00:00
domparsing
domxpath Bug 1446138 [wpt PR 10055] - Add tentative test for what ".." on documentElement returns, a=testonly 2018-04-15 08:33:09 +01:00
dpub-aam Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
dpub-aria Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
editing
encoding Bug 1460230 [wpt PR 10915] - URL/Encoding: change query state parsing, a=testonly 2018-06-05 15:14:37 +01:00
encrypted-media Bug 1454380 [wpt PR 8508] - Test that requestMediaKeySystemAccess sets label, a=testonly 2018-04-24 12:22:44 +00:00
entries-api Bug 1445378 [wpt PR 10003] - README file for entries-api, a=testonly 2018-04-15 08:32:01 +01:00
eventsource
feature-policy Bug 1462778 [wpt PR 11022] - Implement policy: 'document-stream-insertion', a=testonly 2018-06-05 15:15:22 +01:00
fetch Bug 1463394 [wpt PR 11102] - Sec-Metadata prototype., a=testonly 2018-06-05 15:14:59 +01:00
FileAPI Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
fonts Bug 1454535 [wpt PR 10499] - [wptrunner] Install Ahem in Sauce Labs Windows VM, a=testonly 2018-04-28 19:30:51 +00:00
fullscreen
gamepad Bug 1462730 [wpt PR 11076] - Use add_dependency_idls in gamepad idlharness test, a=testonly 2018-05-22 09:40:48 +00:00
generic-sensor Bug 1449277 [wpt PR 10198] - Enable WPT tests for the Generic Sensor classes, a=testonly 2018-05-16 15:04:49 +00:00
geolocation-API
geolocation-sensor Bug 1452296 [wpt PR 10285] - Check inherited interfaces exist, a=testonly 2018-04-15 09:30:53 +01:00
graphics-aam Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
gyroscope Bug 1449277 [wpt PR 10198] - Enable WPT tests for the Generic Sensor classes, a=testonly 2018-05-16 15:04:49 +00:00
hr-time Bug 1452296 [wpt PR 10285] - Check inherited interfaces exist, a=testonly 2018-04-15 09:30:53 +01:00
html Bug 1464001 [wpt PR 11135] - Split the layout test for remove-track, a=testonly 2018-06-05 15:15:19 +01:00
html-imports
html-longdesc
html-media-capture
imagebitmap-renderingcontext Bug 1458540 [wpt PR 10767] - Add 2dcontext/OWNERS and offscreen-canvas/OWNERS, a=testonly 2018-05-20 19:20:17 +00:00
images Bug 1457290 [wpt PR 10664] - Add web-platform-tests logos, a=testonly 2018-05-02 07:47:59 +01:00
IndexedDB Bug 1461225 [wpt PR 10977] - Test BigInt as keys and values in IndexedDB, a=testonly 2018-05-25 16:44:29 +00:00
infrastructure Bug 1459723 [wpt PR 10878] - Improve definition of non-existent origin, a=testonly 2018-05-18 11:15:13 +01:00
input-events
interfaces Bug 1465923 [wpt PR 9785] - Update the gamepad IDL file, a=testonly 2018-06-05 15:15:16 +01:00
intersection-observer Bug 1462484 [wpt PR 7215] - [intersection-observer] Test isIntersecting change events, a=testonly 2018-05-22 09:40:28 +00:00
js Bug 1456201 [wpt PR 10585] - Add acid/OWNERS and js/OWNERS, a=testonly 2018-04-30 14:36:09 +00:00
keyboard-lock Bug 1458582 [wpt PR 10782] - Add keyboard-lock/OWNERS, a=testonly 2018-05-22 09:40:26 +00:00
keyboard-map Bug 1454499 [wpt PR 10495] - [KeyboardMap] Initial stub for navigator.keyboard.getLayoutMap, a=testonly 2018-05-14 09:55:34 +00:00
longtask-timing
magnetometer Bug 1449277 [wpt PR 10198] - Enable WPT tests for the Generic Sensor classes, a=testonly 2018-05-16 15:04:49 +00:00
mathml Bug 1446321 [wpt PR 9993] - MathML: Test italic correction of sub and super scripts attached to a large operator, a=testonly 2018-04-15 08:35:05 +01:00
media
media-capabilities Bug 1458559 [wpt PR 10774] - Add media-capabilities/OWNERS, a=testonly 2018-05-14 09:55:04 +00:00
media-source Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
mediacapture-fromelement Bug 1458552 [wpt PR 10772] - Add mediacapture-fromelement/OWNERS, a=testonly 2018-05-14 09:55:03 +00:00
mediacapture-image Bug 1458616 [wpt PR 10788] - Add mediacapture-image/OWNERS, a=testonly 2018-05-20 19:20:12 +00:00
mediacapture-record Bug 1452296 [wpt PR 10285] - Check inherited interfaces exist, a=testonly 2018-04-15 09:30:53 +01:00
mediacapture-streams Bug 1455736 [wpt PR 10553] - Support groupId in MediaStremTrack.getCapabilities() for video tracks, a=testonly 2018-05-14 09:55:22 +00:00
mediasession Bug 1458542 [wpt PR 10768] - Add mediasession/OWNERS, a=testonly 2018-05-14 09:55:01 +00:00
mimesniff Bug 1452928 [wpt PR 8449] - Add more XMLHttpRequest overrideMimeType() tests, a=testonly 2018-04-26 14:51:07 +00:00
mixed-content Bug 1445184 [wpt PR 9992] - [Beacon API] Port beacon-cross-origin.https.html to wpt, a=testonly 2018-04-15 08:32:04 +01:00
navigation-timing Backed out 3 changesets (bug 1462879) for wpt failures in nav2_test_document_open.html and mochitest failures in test_resource_timing.html on a CLOSED TREE 2018-05-24 19:13:49 +03:00
netinfo Bug 1458576 [wpt PR 10780] - Add netinfo/OWNERS, a=testonly 2018-05-14 09:55:08 +00:00
notifications
offscreen-canvas Bug 1458540 [wpt PR 10767] - Add 2dcontext/OWNERS and offscreen-canvas/OWNERS, a=testonly 2018-05-20 19:20:17 +00:00
old-tests Bug 1129091 - Wait for the iframes to load before running test functions that use them. r=jgraham 2018-05-15 07:57:15 -04:00
orientation-event Bug 1458532 [wpt PR 10764] - Add orientation-event/OWNERS, a=testonly 2018-05-14 09:55:00 +00:00
orientation-sensor Bug 1449277 [wpt PR 10198] - Enable WPT tests for the Generic Sensor classes, a=testonly 2018-05-16 15:04:49 +00:00
page-visibility Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
paint-timing
payment-handler Bug 1459622 [wpt PR 10872] - PaymentHandler: Change topLevelOrigin to topOrigin, a=testonly 2018-05-18 11:15:13 +01:00
payment-method-basic-card
payment-method-id
payment-request Bug 1462117 [wpt PR 11021] - Test short regionCode, a=testonly 2018-05-20 19:17:55 +00:00
performance-timeline Bug 1456930 [wpt PR 9040] - Move webtiming-resolution, webtiming-ssl to wpt, a=testonly 2018-05-02 07:47:17 +01:00
picture-in-picture Bug 1462560 [wpt PR 11064] - [Picture-in-Picture] Add a layout test for detached frame., a=testonly 2018-05-25 16:44:27 +00:00
pointerevents Bug 1461476 [wpt PR 10996] - set movement value for pointer event while locked, a=testonly 2018-05-22 09:40:29 +00:00
pointerlock Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
preload Bug 1443763 [wpt PR 9897] - Fix font paths after #9718, a=testonly 2018-04-15 08:32:37 +01:00
presentation-api Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
proximity Bug 1446275 [wpt PR 10068] - Revert "rename generic-sensor directory as sensors", a=testonly 2018-04-15 08:34:19 +01:00
quirks
referrer-policy Bug 1461200 [wpt PR 10976] - Enable attr-referrer script-tag tests, a=testonly 2018-05-18 11:15:13 +01:00
remote-playback Bug 1458600 [wpt PR 10784] - Add remote-playback/OWNERS, a=testonly 2018-05-14 09:55:05 +00:00
requestidlecallback
resize-observer Bug 1453789: Remove Element.createShadowRoot. r=smaug 2018-04-13 20:51:55 +02:00
resource-timing Bug 1454184 [wpt PR 10474] - [Resource Timing] Align TAO parsing to spec, a=testonly 2018-04-28 19:31:02 +00:00
resources Bug 1462165 [wpt PR 11018] - Allow WebUSB to work in a Dedicated Worker, a=testonly 2018-05-22 09:40:41 +00:00
screen-orientation Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
secure-contexts Bug 1458573 [wpt PR 10779] - Add {upgrade-insecure-requests,secure-contexts,trusted-types}/OWNERS, a=testonly 2018-05-18 11:15:13 +01:00
selection Bug 1443513 [wpt PR 9024] - Fix Selection API idlharness.js test, a=testonly 2018-03-31 22:30:11 +01:00
server-timing Bug 1458546 [wpt PR 10770] - Add server-timing/OWNERS, a=testonly 2018-05-20 19:19:28 +00:00
service-workers Bug 1465670 P2 Fix import-scripts-updated-flag.https.html WPT to expect NetworkError and to clear previous test state. r=asuth 2018-06-05 10:49:12 -07:00
shadow-dom Bug 1461321 - input.list should work in shadow DOM, r=peterv 2018-05-24 22:46:11 +03:00
speech-api
storage Bug 1443718 [wpt PR 9892] - Consolidate all IDL files into interfaces/, a=testonly 2018-03-31 22:32:37 +01:00
streams Bug 1463333 [wpt PR 6499] - Initial Merge of WritableStreams Tests w/Upstream W3C, a=testonly 2018-06-05 15:14:29 +01:00
subresource-integrity
svg Bug 1463688 [wpt PR 11118] - Rename foreign-object-paints-before-rect-expected.html to -ref.html, a=testonly 2018-06-05 15:15:07 +01:00
svg-aam
tools Bug 1465527 - Log parent test result stacks. r=jgraham 2018-05-30 18:34:45 +01:00
touch-events Bug 1458789 [wpt PR 10813] - remove createTouch, a=testonly 2018-05-18 11:15:13 +01:00
trusted-types Bug 1458573 [wpt PR 10779] - Add {upgrade-insecure-requests,secure-contexts,trusted-types}/OWNERS, a=testonly 2018-05-18 11:15:13 +01:00
uievents Bug 1450009 [wpt PR 10243] - Add wpt test for back/forward mouse buttons., a=testonly 2018-04-15 08:37:29 +01:00
upgrade-insecure-requests Bug 1458573 [wpt PR 10779] - Add {upgrade-insecure-requests,secure-contexts,trusted-types}/OWNERS, a=testonly 2018-05-18 11:15:13 +01:00
url Bug 1460230 [wpt PR 10915] - URL/Encoding: change query state parsing, a=testonly 2018-06-05 15:14:37 +01:00
user-timing Bug 1462502 [wpt PR 11056] - Add UserTiming toJSON test, a=testonly 2018-05-22 09:40:41 +00:00
vibration
visual-viewport
wai-aria Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
wake-lock
wasm Bug 1458561 [wpt PR 10775] - Add wasm/OWNERS, a=testonly 2018-05-20 19:19:37 +00:00
web-animations Bug 1466031 - Update test_animation-starttime.html; r=hiro 2018-06-04 10:20:57 +09:00
web-nfc Bug 1459695 [wpt PR 10876] - Run parsed lints on manual and visual tests, a=testonly 2018-05-18 11:15:13 +01:00
web-share
webaudio Bug 1460278 [wpt PR 10925] - Use https://web-platform-tests.org, a=testonly 2018-05-18 11:15:13 +01:00
webauthn Bug 1452296 [wpt PR 10285] - Check inherited interfaces exist, a=testonly 2018-04-15 09:30:53 +01:00
WebCryptoAPI Bug 1461925 [wpt PR 11028] - Generalize subsetTest() in common/ and use for WebCryptoAPI tests, a=testonly 2018-05-20 19:18:36 +00:00
webdriver Bug 1460763 [wpt PR 10957] - Properly switching window focus after close of window, a=testonly 2018-05-18 11:15:13 +01:00
webgl Bug 1458524 [wpt PR 10760] - Add webgl/OWNERS, a=testonly 2018-05-20 19:19:47 +00:00
WebIDL
webmessaging Bug 1447662 [wpt PR 10123] - Make MessagePort's close() detach, a=testonly 2018-05-02 07:48:42 +01:00
webrtc Bug 1461496 [wpt PR 10997] - Add test to verify a particular PeerConnection setup does not deadlock, a=testonly 2018-05-20 19:18:09 +00:00
websockets Bug 1456516 [wpt PR 10606] - Reindent websocket *.any.js files, a=testonly 2018-05-02 07:49:12 +01:00
webstorage Bug 1463221 [wpt PR 11096] - [SessionStorageS13N] Fix key decoding/encoding and site isolation., a=testonly 2018-05-25 16:44:21 +00:00
webusb Bug 1462454 [wpt PR 11050] - Create WebUSB idlharness test for workers, a=testonly 2018-05-25 16:44:22 +00:00
webvr Bug 1452593 [wpt PR 10356] - Properly define EventInit in /webvr/idlharness.https.html, a=testonly 2018-04-15 09:39:14 +01:00
webvtt Bug 1452643 [wpt PR 9855] - Update the webvtt IDL file, a=testonly 2018-04-15 08:34:36 +01:00
webxr Bug 1460534 [wpt PR 10947] - Added dictionary WebGLContextAttributes to avoid no original dictionary error, a=testonly 2018-05-20 19:18:00 +00:00
workers Bug 1462278 [wpt PR 11040] - Worker: Add credentials tests for dedicated workers, a=testonly 2018-05-22 09:40:35 +00:00
worklets Bug 1458535 [wpt PR 10766] - Add worklets/OWNERS, a=testonly 2018-05-20 19:20:55 +00:00
x-frame-options Bug 1462559 [wpt PR 11063] - Add x-frame-options/OWNERS, a=testonly 2018-05-22 09:40:47 +00:00
xhr Bug 1463682 [wpt PR 11116] - Run autopep8 on *.py in cors, fetch and xhr, a=testonly 2018-06-05 15:14:50 +01:00
.codecov.yml
.gitignore Bug 1447843 [wpt PR 10127] - Fix resources/test (when running locally), a=testonly 2018-04-15 08:35:12 +01:00
.gitmodules
.pyup.yml
.taskcluster.yml Bug 1458528 [wpt PR 10762] - Move some setup out of the docker file to fix taskcluster problems., a=testonly 2018-05-14 09:54:52 +00:00
.travis.yml Bug 1462524 [wpt PR 11060] - Stop posting PR results to pulls.web-platform-tests.org, a=testonly 2018-05-22 09:40:39 +00:00
check_stability.ini Bug 1462524 [wpt PR 11060] - Stop posting PR results to pulls.web-platform-tests.org, a=testonly 2018-05-22 09:40:39 +00:00
CONTRIBUTING.md Bug 1460278 [wpt PR 10925] - Use https://web-platform-tests.org, a=testonly 2018-05-18 11:15:13 +01:00
LICENSE
LICENSE.md
lint.whitelist Bug 1449277 [wpt PR 10198] - Enable WPT tests for the Generic Sensor classes, a=testonly 2018-05-16 15:04:49 +00:00
README.md Bug 1463314 [wpt PR 11098] - [docs] s/preceed/precede, other typos/punctuation, a=testonly 2018-05-25 16:44:28 +00:00
serve.py
server-side.md
testharness_runner.html
update-built-tests.sh
wpt
wpt.py

The web-platform-tests Project IRC chat

The web-platform-tests Project is a W3C-coordinated attempt to build a cross-browser testsuite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software that is compatible with other implementations, and that later implementations will be compatible with their implementations. This in turn gives Web authors/developers confidence that they can actually rely on the Web platform to deliver on the promise of working across browsers and devices without needing extra layers of abstraction to paper over the gaps left by specification editors and implementors.

Setting Up the Repo

Clone or otherwise get https://github.com/w3c/web-platform-tests.

Note: because of the frequent creation and deletion of branches in this repo, it is recommended to "prune" stale branches when fetching updates, i.e. use git pull --prune (or git fetch -p && git merge).

Running the Tests

The tests are designed to be run from your local computer. The test environment requires Python 2.7+ (but not Python 3.x).

On Windows, be sure to add the Python directory (c:\python2x, by default) to your %Path% Environment Variable, and read the Windows Notes section below.

To get the tests running, you need to set up the test domains in your hosts file.

The necessary content can be generated with ./wpt make-hosts-file; on Windows, you will need to precede the prior command with python or the path to the Python binary (python wpt make-hosts-file).

For example, on most UNIX-like systems, you can setup the hosts file with:

./wpt make-hosts-file | sudo tee -a /etc/hosts

And on Windows (this must be run in a PowerShell session with Administrator privileges):

python wpt make-hosts-file | Out-File %SystemRoot%\System32\drivers\etc\hosts -Encoding ascii -Append

If you are behind a proxy, you also need to make sure the domains above are excluded from your proxy lookups.

Running Tests Manually

The test server can be started using

./wpt serve

On Windows: You will need to precede the prior command with python or the path to the python binary.

python wpt serve

This will start HTTP servers on two ports and a websockets server on one port. By default the web servers start on ports 8000 and 8443 and the other ports are randomly-chosen free ports. Tests must be loaded from the first HTTP server in the output. To change the ports, create a config.json file in the wpt root directory, and add port definitions of your choice e.g.:

{
  "ports": {
    "http": [1234, "auto"],
    "https":[5678]
  }
}

After your hosts file is configured, the servers will be locally accessible at:

http://web-platform.test:8000/
https://web-platform.test:8443/ *

*See Trusting Root CA

Running Tests Automatically

Tests can be run automatically in a browser using the run command of the wpt script in the root of the checkout. This requires the hosts file setup documented above, but you must not have the test server already running when calling wpt run. The basic command line syntax is:

./wpt run product [tests]

On Windows: You will need to precede the prior command with python or the path to the python binary.

python wpt run product [tests]

where product is currently firefox or chrome and [tests] is a list of paths to tests. This will attempt to automatically locate a browser instance and install required dependencies. The command is very configurable; for example to specify a particular binary use wpt run --binary=path product. The full range of options can be see with wpt run --help and wpt run --wptrunner-help.

Not all dependencies can be automatically installed; in particular the certutil tool required to run https tests with Firefox must be installed using a system package manager or similar.

On Debian/Ubuntu certutil may be installed using:

sudo apt install libnss3-tools

And on macOS with homebrew using:

brew install nss

On other platforms, download the firefox archive and common.tests.zip archive for your platform from Mozilla CI.

Then extract certutil[.exe] from the tests.zip package and libnss3[.so|.dll|.dynlib] and put the former on your path and the latter on your library path.

Command Line Tools

The wpt command provides a frontend to a variety of tools for working with and running web-platform-tests. Some of the most useful commands are:

  • wpt serve - For starting the wpt http server
  • wpt run - For running tests in a browser
  • wpt lint - For running the lint against all tests
  • wpt manifest - For updating or generating a MANIFEST.json test manifest
  • wpt install - For installing the latest release of a browser or webdriver server on the local machine.

Submodules

Some optional components of web-platform-tests (test components from third party software and pieces of the CSS build system) are included as submodules. To obtain these components run the following in the root of your checkout:

git submodule update --init --recursive

Prior to commit 39d07eb01fab607ab1ffd092051cded1bdd64d78 submodules were required for basic functionality. If you are working with an older checkout, the above command is required in all cases.

When moving between a commit prior to 39d07eb and one after it git may complain

$ git checkout master
error: The following untracked working tree files would be overwritten by checkout:
[…]

...followed by a long list of files. To avoid this error, remove the resources and tools directories before switching branches:

$ rm -r resources/ tools/
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'

When moving in the opposite direction, i.e. to a commit that does have submodules, you will need to git submodule update, as above. If git throws an error like:

fatal: No url found for submodule path 'resources/webidl2/test/widlproc' in .gitmodules
Failed to recurse into submodule path 'resources/webidl2'
fatal: No url found for submodule path 'tools/html5lib' in .gitmodules
Failed to recurse into submodule path 'resources'
Failed to recurse into submodule path 'tools'

...then remove the tools and resources directories, as above.

Windows Notes

On Windows wpt commands must be prefixed with python or the path to the python binary (if python is not in your %PATH%).

python wpt [command]

Alternatively, you may also use Bash on Ubuntu on Windows in the Windows 10 Anniversary Update build, then access your windows partition from there to launch wpt commands.

Please make sure git and your text editor do not automatically convert line endings, as it will cause lint errors. For git, please set git config core.autocrlf false in your working tree.

Certificates

By default pre-generated certificates for the web-platform.test domain are provided in tools/certs. If you wish to generate new certificates for any reason it's possible to use OpenSSL when starting the server, or starting a test run, by providing the --ssl-type=openssl argument to the wpt serve or wpt run commands.

If you installed OpenSSL in such a way that running openssl at a command line doesn't work, you also need to adjust the path to the OpenSSL binary. This can be done by adding a section to config.json like:

"ssl": {"openssl": {"binary": "/path/to/openssl"}}

On Windows using OpenSSL typically requires installing an OpenSSL distribution. Shining Light provide a convenient installer that is known to work, but requires a little extra setup, i.e.:

Run the installer for Win32_OpenSSL_v1.1.0b (30MB). During installation, change the default location for where to Copy OpenSSL Dlls from the System directory to the /bin directory.

After installation, ensure that the path to OpenSSL (typically, this will be C:\OpenSSL-Win32\bin) is in your %Path% Environment Variable. If you forget to do this part, you will most likely see a 'File Not Found' error when you start wptserve.

Finally, set the path value in the server configuration file to the default OpenSSL configuration file location. To do this create a file called config.json. Then add the OpenSSL configuration below, ensuring that the key ssl/openssl/base_conf_path has a value that is the path to the OpenSSL config file (typically this will be C:\\OpenSSL-Win32\\bin\\openssl.cfg):

{
  "ssl": {
    "type": "openssl",
    "encrypt_after_connect": false,
    "openssl": {
      "openssl_binary": "openssl",
      "base_path: "_certs",
      "force_regenerate": false,
      "base_conf_path": "C:\\OpenSSL-Win32\\bin\\openssl.cfg"
    },
  },
}

Trusting Root CA

To prevent browser SSL warnings when running HTTPS tests locally, the web-platform-tests Root CA file cacert.pem in tools/certs must be added as a trusted certificate in your OS/browser.

Publication

The master branch is automatically synced to http://w3c-test.org/.

Pull requests are automatically mirrored except those that modify sensitive resources (such as .py). The latter require someone with merge access to comment with "LGTM" or "w3c-test:mirror" to indicate the pull request has been checked.

Finding Things

Each top-level directory matches the shortname used by a standard, with some exceptions. (Typically the shortname is from the standard's corresponding GitHub repository.)

For some of the specifications, the tree under the top-level directory represents the sections of the respective documents, using the section IDs for directory names, with a maximum of three levels deep.

So if you're looking for tests in HTML for "The History interface", they will be under html/browsers/history/the-history-interface/.

Various resources that tests depend on are in common, images, and fonts.

Branches

In the vast majority of cases the only upstream branch that you should need to care about is master. If you see other branches in the repository, you can generally safely ignore them.

Contributing

Save the Web, Write Some Tests!

Absolutely everyone is welcome (and even encouraged) to contribute to test development, so long as you fulfill the contribution requirements detailed in the Contributing Guidelines. No test is too small or too simple, especially if it corresponds to something for which you've noted an interoperability bug in a browser.

The way to contribute is just as usual:

  • Fork this repository (and make sure you're still relatively in sync with it if you forked a while ago).
  • Create a branch for your changes: git checkout -b topic.
  • Make your changes.
  • Run the lint script described below.
  • Commit locally and push that to your repo.
  • Send in a pull request based on the above.

Issues with web-platform-tests

If you spot an issue with a test and are not comfortable providing a pull request per above to fix it, please file a new issue. Thank you!

Lint tool

We have a lint tool for catching common mistakes in test files. You can run it manually by starting the lint executable from the root of your local web-platform-tests working directory like this:

./wpt lint

The lint tool is also run automatically for every submitted pull request, and reviewers will not merge branches with tests that have lint errors, so you must fix any errors the lint tool reports.

In the unusual case of error reports for things essential to a certain test or that for other exceptional reasons shouldn't prevent a merge of a test, update and commit the lint.whitelist file in the web-platform-tests root directory to suppress the error reports.

For more details, see the lint-tool documentation.

Adding command-line scripts ("tools" subdirs)

Sometimes you may want to add a script to the repository that's meant to be used from the command line, not from a browser (e.g., a script for generating test files). If you want to ensure (e.g., for security reasons) that such scripts won't be handled by the HTTP server, but will instead only be usable from the command line, then place them in either:

  • the tools subdir at the root of the repository, or

  • the tools subdir at the root of any top-level directory in the repository which contains the tests the script is meant to be used with

Any files in those tools directories won't be handled by the HTTP server; instead the server will return a 404 if a user navigates to the URL for a file within them.

If you want to add a script for use with a particular set of tests but there isn't yet any tools subdir at the root of a top-level directory in the repository containing those tests, you can create a tools subdir at the root of that top-level directory and place your scripts there.

For example, if you wanted to add a script for use with tests in the notifications directory, create the notifications/tools subdir and put your script there.

Test Review

We can sometimes take a little while to go through pull requests because we have to go through all the tests and ensure that they match the specification correctly. But we look at all of them, and take everything that we can.

OWNERS files are used only to indicate who should be notified of pull requests. If you are interested in receiving notifications of proposed changes to tests in a given directory, feel free to add yourself to the OWNERS file. Anyone with expertise in the specification under test can approve a pull request. In particular, if a test change has already been adequately reviewed "upstream" in another repository, it can be pushed here without any further review by supplying a link to the upstream review.

Search filters to find things to review:

Getting Involved

If you wish to contribute actively, you're very welcome to join the public-test-infra@w3.org mailing list (low traffic) by signing up to our mailing list. The mailing list is archived.

Join us on irc #testing (irc.w3.org, port 6665). The channel is archived.

Documentation