test: split accname, fix select preventing context closure

This commit is contained in:
Dmitry Gozman 2022-06-09 13:51:48 -07:00
parent 7ce17a97b1
commit 652ec2f1fa
2 changed files with 74 additions and 56 deletions

View File

@ -19,7 +19,13 @@ import fs from 'fs';
test.skip(({ mode }) => mode !== 'default');
test('wpt accname', async ({ page, asset, server, browserName }) => {
const ranges = [
'name_test_case_539-manual.html',
'name_test_case_721-manual.html',
];
for (let range = 0; range <= ranges.length; range++) {
test('wpt accname #' + range, async ({ page, asset, server, browserName }) => {
const skipped = [
// Spec clearly says to only use control's value when embedded in a label (step 2C).
'name_heading-combobox-focusable-alternative-manual.html',
@ -60,6 +66,9 @@ test('wpt accname', async ({ page, asset, server, browserName }) => {
for (const testFile of testFiles) {
if (skipped.includes(testFile))
continue;
const included = (range === 0 || testFile >= ranges[range - 1]) && (range === ranges.length || testFile < ranges[range]);
if (!included)
continue;
await test.step(testFile, async () => {
await page.goto(server.PREFIX + `/wpt/accname/` + testFile);
// Use $eval to force injected script.
@ -78,7 +87,8 @@ test('wpt accname', async ({ page, asset, server, browserName }) => {
expect(received, `checking "${selector}"`).toBe(expected);
});
}
});
});
}
test('axe-core implicit-role', async ({ page, asset, server }) => {
await page.goto(server.EMPTY_PAGE);

View File

@ -582,7 +582,15 @@ it('should wait for input to be enabled', async ({ page }) => {
});
it('should wait for select to be enabled', async ({ page }) => {
await page.setContent('<select onclick="javascript:window.__CLICKED=true;" disabled><option selected>Hello</option></select>');
await page.setContent(`
<select disabled><option selected>Hello</option></select>
<script>
document.querySelector('select').addEventListener('mousedown', event => {
window.__CLICKED=true;
event.preventDefault();
});
</script>
`);
let done = false;
const clickPromise = page.click('select').then(() => done = true);
await giveItAChanceToClick(page);