fix: fix escaping algo for P selectors (#10474)

This commit is contained in:
jrandolf
2023-06-29 13:00:57 +02:00
committed by GitHub
parent 0a7bad6d6a
commit 84a956f56b
3 changed files with 30 additions and 12 deletions

View File

@@ -2,6 +2,7 @@
<span id="f"></span>
<div id="c"></div>
</div>
<a>My name is Jun (pronounced like "June")</a>
<script>
const topShadow = document.querySelector('#c');

View File

@@ -637,5 +637,26 @@ describe('Query handler tests', function () {
const elements = await page.$$('::-p-text(world), button');
expect(elements).toHaveLength(1);
});
it('should handle escapes', async () => {
const {server, page} = await getTestState();
await page.goto(`${server.PREFIX}/p-selectors.html`);
let element = await page.$(
':scope >>> ::-p-text(My name is Jun \\(pronounced like "June"\\))'
);
expect(element).toBeTruthy();
element = await page.$(
':scope >>> ::-p-text("My name is Jun (pronounced like \\"June\\")")'
);
expect(element).toBeTruthy();
element = await page.$(
':scope >>> ::-p-text(My name is Jun \\(pronounced like "June"\\)")'
);
expect(element).toBeFalsy();
element = await page.$(
':scope >>> ::-p-text("My name is Jun \\(pronounced like "June"\\))'
);
expect(element).toBeFalsy();
});
});
});