test: add a <datalist>
spec for time type (#36953)
spec: add a datalist spec for time type
This commit is contained in:
parent
f20d0b4ecb
commit
37f5881882
4 changed files with 49 additions and 15 deletions
|
@ -9,10 +9,11 @@ const fixturesPath = path.resolve(__dirname, 'fixtures');
|
||||||
describe('autofill', () => {
|
describe('autofill', () => {
|
||||||
afterEach(closeAllWindows);
|
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 });
|
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' });
|
w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
|
||||||
|
|
||||||
const inputText = 'clap';
|
const inputText = 'clap';
|
||||||
for (const keyCode of inputText) {
|
for (const keyCode of inputText) {
|
||||||
w.webContents.sendInputEvent({ type: 'char', keyCode });
|
w.webContents.sendInputEvent({ type: 'char', keyCode });
|
||||||
|
@ -25,4 +26,22 @@ describe('autofill', () => {
|
||||||
const value = await w.webContents.executeJavaScript("document.querySelector('input').value");
|
const value = await w.webContents.executeJavaScript("document.querySelector('input').value");
|
||||||
expect(value).to.equal('Eric Clapton');
|
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
15
spec/fixtures/pages/datalist-text.html
vendored
Normal 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
13
spec/fixtures/pages/datalist-time.html
vendored
Normal 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>
|
13
spec/fixtures/pages/datalist.html
vendored
13
spec/fixtures/pages/datalist.html
vendored
|
@ -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>
|
|
Loading…
Reference in a new issue