fix: put file payloads into "payloads" protocol field (#1469)

Fixes https://github.com/microsoft/playwright-java/issues/1468
This commit is contained in:
Yury Semikhatsky 2024-02-01 11:54:18 -08:00 committed by GitHub
parent 77e59999ab
commit 197ee801ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 2 deletions

View File

@ -490,7 +490,7 @@ public class ElementHandleImpl extends JSHandleImpl implements ElementHandle {
options = new SetInputFilesOptions();
}
JsonObject params = gson().toJsonTree(options).getAsJsonObject();
params.add("files", Serialization.toJsonArray(files));
params.add("payloads", Serialization.toJsonArray(files));
sendMessage("setInputFiles", params);
}

View File

@ -308,7 +308,18 @@ public class TestPageSetInputFiles extends TestBase {
assertEquals("file-to-upload.txt", page.evalOnSelector("input", "input => input.files[0].name"));
}
// @Test
@Test
void shouldAcceptSingleFilePayload() {
page.setContent("<input type=file oninput='javascript:console.timeStamp()'>");
FileChooser fileChooser = page.waitForFileChooser(() -> page.click("input"));
assertEquals(page, fileChooser.page());
assertNotNull(fileChooser.element());
fileChooser.setFiles(new FilePayload("test.txt", "text/plain", "Hello!".getBytes()));
assertEquals(1, page.evalOnSelector("input", "input => input.files.length"));
assertEquals("test.txt", page.evalOnSelector("input", "input => input.files[0].name"));
}
// @Test
void shouldDetectMimeType() throws ExecutionException, InterruptedException {
// TODO: Parse form fields on server
}