test: add a <datalist> spec for time type (#36953)

spec: add a datalist spec for time type
This commit is contained in:
Shelley Vohr 2023-01-23 17:21:28 +01:00 committed by GitHub
parent f20d0b4ecb
commit 37f5881882
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 15 deletions

View file

@ -9,10 +9,11 @@ const fixturesPath = path.resolve(__dirname, 'fixtures');
describe('autofill', () => {
afterEach(closeAllWindows);
it('can be selected via keyboard', async () => {
it('can be selected via keyboard for a <datalist> with text type', async () => {
const w = new BrowserWindow({ show: true });
await w.loadFile(path.join(fixturesPath, 'pages', 'datalist.html'));
await w.loadFile(path.join(fixturesPath, 'pages', 'datalist-text.html'));
w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
const inputText = 'clap';
for (const keyCode of inputText) {
w.webContents.sendInputEvent({ type: 'char', keyCode });
@ -25,4 +26,22 @@ describe('autofill', () => {
const value = await w.webContents.executeJavaScript("document.querySelector('input').value");
expect(value).to.equal('Eric Clapton');
});
it('can be selected via keyboard for a <datalist> with time type', async () => {
const w = new BrowserWindow({ show: true });
await w.loadFile(path.join(fixturesPath, 'pages', 'datalist-time.html'));
const inputText = '11P'; // 1:01 PM
for (const keyCode of inputText) {
w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
w.webContents.sendInputEvent({ type: 'keyDown', keyCode });
w.webContents.sendInputEvent({ type: 'char', keyCode });
await delay(100);
}
w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
const value = await w.webContents.executeJavaScript("document.querySelector('input').value");
expect(value).to.equal('13:01');
});
});

15
spec/fixtures/pages/datalist-text.html vendored Normal file
View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" list="guitarists" />
<datalist id="guitarists">
<select>
<option value="John Mayer"></option>
<option value="Eric Clapton"></option>
<option value="Django Reinhardt"></option>
</select>
</datalist>
</body>
</html>

13
spec/fixtures/pages/datalist-time.html vendored Normal file
View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<body>
<input type="time" list="hours" />
<datalist id="popularHours">
<option value="12:00"></option>
<option value="13:00"></option>
<option value="14:00"></option>
</datalist>
</body>
</html>

View file

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html>
<body>
<input type="text" list="guitarists" />
<datalist id="guitarists">
<select>
<option value="John Mayer"></option>
<option value="Eric Clapton"></option>
<option value="Django Reinhardt"></option>
</select>
</datalist>
</body>
</html>