From bae57eec02b0ee5b7733812320a9c13107e52be6 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Thu, 1 Feb 2024 12:20:31 -0800 Subject: [PATCH] =?UTF-8?q?cherry-pick(#1469):=20fix:=20put=20file=20paylo?= =?UTF-8?q?ads=20into=20"payloads"=20protocol=20f=E2=80=A6=20(#1470)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reference https://github.com/microsoft/playwright-java/issues/1468 --- .../playwright/impl/ElementHandleImpl.java | 2 +- .../microsoft/playwright/TestPageSetInputFiles.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java index 1218749b5..35d7374bc 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java @@ -490,7 +490,7 @@ void setInputFilesImpl(FilePayload[] files, SetInputFilesOptions options) { options = new SetInputFilesOptions(); } JsonObject params = gson().toJsonTree(options).getAsJsonObject(); - params.add("files", Serialization.toJsonArray(files)); + params.add("payloads", Serialization.toJsonArray(files)); sendMessage("setInputFiles", params); } diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java b/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java index 6e44703b6..f2cfbed23 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java @@ -308,7 +308,18 @@ void shouldAcceptSingleFile() { assertEquals("file-to-upload.txt", page.evalOnSelector("input", "input => input.files[0].name")); } -// @Test + @Test + void shouldAcceptSingleFilePayload() { + page.setContent(""); + 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 }