Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1448,7 +1448,7 @@ default Page newPage() {
* @param title Title of the browser server, used for identification.
* @since v1.59
*/
default Bind bind(String title) {
default BindResult bind(String title) {
return bind(title, null);
}
/**
Expand All @@ -1457,7 +1457,7 @@ default Bind bind(String title) {
* @param title Title of the browser server, used for identification.
* @since v1.59
*/
Bind bind(String title, BindOptions options);
BindResult bind(String title, BindOptions options);
/**
* <strong>NOTE:</strong> This API controls <a href="https://www.chromium.org/developers/how-tos/trace-event-profiling-tool">Chromium Tracing</a>
* which is a low-level chromium-specific debugging tool. API to control <a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public interface Debugger {
*
* @since v1.59
*/
PausedDetails pausedDetails();
DebuggerPausedDetails pausedDetails();
/**
* Configures the debugger to pause before the next action is executed.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.Bind;
import com.microsoft.playwright.options.BindResult;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
Expand Down Expand Up @@ -197,7 +197,7 @@ public void startTracing(Page page, StartTracingOptions options) {
}

@Override
public Bind bind(String title, BindOptions options) {
public BindResult bind(String title, BindOptions options) {
JsonObject params = new JsonObject();
params.addProperty("title", title);
if (options != null) {
Expand All @@ -212,9 +212,9 @@ public Bind bind(String title, BindOptions options) {
}
}
JsonObject result = sendMessage("startServer", params, NO_TIMEOUT).getAsJsonObject();
Bind bind = new Bind();
bind.endpoint = result.get("endpoint").getAsString();
return bind;
BindResult bindResult = new BindResult();
bindResult.endpoint = result.get("endpoint").getAsString();
return bindResult;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import com.google.gson.JsonObject;
import com.microsoft.playwright.Debugger;
import com.microsoft.playwright.options.Location;
import com.microsoft.playwright.options.PausedDetails;
import com.microsoft.playwright.options.DebuggerPausedDetails;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -28,7 +28,7 @@

class DebuggerImpl extends ChannelOwner implements Debugger {
private final List<Runnable> pausedStateChangedHandlers = new ArrayList<>();
private PausedDetails pausedDetails;
private DebuggerPausedDetails pausedDetails;

DebuggerImpl(ChannelOwner parent, String type, String guid, JsonObject initializer) {
super(parent, type, guid, initializer);
Expand All @@ -38,7 +38,7 @@ class DebuggerImpl extends ChannelOwner implements Debugger {
protected void handleEvent(String event, JsonObject params) {
if ("pausedStateChanged".equals(event)) {
if (params.has("pausedDetails") && !params.get("pausedDetails").isJsonNull()) {
pausedDetails = gson().fromJson(params.get("pausedDetails"), PausedDetails.class);
pausedDetails = gson().fromJson(params.get("pausedDetails"), DebuggerPausedDetails.class);
} else {
pausedDetails = null;
}
Expand All @@ -59,7 +59,7 @@ public void offPausedStateChanged(Runnable handler) {
}

@Override
public PausedDetails pausedDetails() {
public DebuggerPausedDetails pausedDetails() {
return pausedDetails;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package com.microsoft.playwright.options;

public class Bind {
public class BindResult {
public String endpoint;

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package com.microsoft.playwright.options;

public class PausedDetails {
public class DebuggerPausedDetails {
public Location location;
public String title;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@

package com.microsoft.playwright;

import com.microsoft.playwright.options.Bind;
import com.microsoft.playwright.options.BindResult;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

public class TestBrowserBind extends TestBase {
@Test
void shouldBindAndUnbindBrowser() {
Bind serverInfo = browser.bind("default");
BindResult serverInfo = browser.bind("default");
try {
assertNotNull(serverInfo);
assertNotNull(serverInfo.endpoint);
Expand All @@ -36,7 +36,7 @@ void shouldBindAndUnbindBrowser() {

@Test
void shouldBindWithCustomTitleAndOptions() {
Bind serverInfo = browser.bind("my-title",
BindResult serverInfo = browser.bind("my-title",
new Browser.BindOptions().setHost("127.0.0.1").setPort(0));
try {
assertNotNull(serverInfo);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package com.microsoft.playwright;

import com.microsoft.playwright.options.PausedDetails;
import com.microsoft.playwright.options.DebuggerPausedDetails;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;
Expand All @@ -40,7 +40,7 @@ void shouldPauseAtNextAndResume() {
dbg.onPausedStateChanged(() -> {
if (!paused[0]) {
paused[0] = true;
PausedDetails details = dbg.pausedDetails();
DebuggerPausedDetails details = dbg.pausedDetails();
assertNotNull(details);
assertTrue(details.title.contains("Click"), "title: " + details.title);
dbg.resume();
Expand All @@ -63,7 +63,7 @@ void shouldStepWithNext() {
dbg.onPausedStateChanged(() -> {
if (!paused[0]) {
paused[0] = true;
PausedDetails details = dbg.pausedDetails();
DebuggerPausedDetails details = dbg.pausedDetails();
assertNotNull(details);
assertTrue(details.title.contains("Click"), "title: " + details.title);
dbg.next();
Expand All @@ -88,7 +88,7 @@ void shouldPauseAtPauseCall() {
dbg.onPausedStateChanged(() -> {
if (!paused[0]) {
paused[0] = true;
PausedDetails details = dbg.pausedDetails();
DebuggerPausedDetails details = dbg.pausedDetails();
assertNotNull(details);
assertTrue(details.title.contains("Pause"), "title: " + details.title);
dbg.resume();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,40 +283,20 @@ private static String wrapText(String text, int maxColumns, String prefix) {
class TypeRef extends Element {
String customType;

private static final Map<String, String> customTypeNames = new HashMap<>();
static {
customTypeNames.put("APIRequest.newContext.options.clientCertificates", "ClientCertificate");
customTypeNames.put("Browser.newContext.options.clientCertificates", "ClientCertificate");
customTypeNames.put("Browser.newPage.options.clientCertificates", "ClientCertificate");
customTypeNames.put("BrowserType.launchPersistentContext.options.clientCertificates", "ClientCertificate");

customTypeNames.put("BrowserContext.addCookies.cookies", "Cookie");
customTypeNames.put("BrowserContext.cookies", "Cookie");

customTypeNames.put("Request.headersArray", "HttpHeader");
customTypeNames.put("Response.headersArray", "HttpHeader");
customTypeNames.put("APIResponse.headersArray", "HttpHeader");

customTypeNames.put("Locator.selectOption.values", "SelectOption");
customTypeNames.put("ElementHandle.selectOption.values", "SelectOption");
customTypeNames.put("Frame.selectOption.values", "SelectOption");
customTypeNames.put("Page.selectOption.values", "SelectOption");

customTypeNames.put("Locator.setInputFiles.files", "FilePayload");
customTypeNames.put("ElementHandle.setInputFiles.files", "FilePayload");
customTypeNames.put("FileChooser.setFiles.files", "FilePayload");
customTypeNames.put("Frame.setInputFiles.files", "FilePayload");
customTypeNames.put("Page.setInputFiles.files", "FilePayload");
customTypeNames.put("Page.setInputFiles.files", "FilePayload");
customTypeNames.put("FormData.append.value", "FilePayload");
customTypeNames.put("FormData.set.value", "FilePayload");

customTypeNames.put("Locator.dragTo.options.sourcePosition", "Position");
customTypeNames.put("Page.dragAndDrop.options.sourcePosition", "Position");
customTypeNames.put("Frame.dragAndDrop.options.sourcePosition", "Position");
customTypeNames.put("Locator.dragTo.options.targetPosition", "Position");
customTypeNames.put("Page.dragAndDrop.options.targetPosition", "Position");
customTypeNames.put("Frame.dragAndDrop.options.targetPosition", "Position");
// Returns the Java-specific type alias declared in the api docs (e.g. `alias-java: Cookie`),
// falling back to the language-agnostic `alias` if no Java-specific override is provided.
private static String javaAlias(JsonObject jsonType) {
if (!jsonType.has("langAliases")) {
return null;
}
JsonObject langAliases = jsonType.getAsJsonObject("langAliases");
if (langAliases.has("java")) {
return langAliases.get("java").getAsString();
}
if (langAliases.has("default")) {
return langAliases.get("default").getAsString();
}
return null;
}

TypeRef(Element parent, JsonElement jsonElement) {
Expand Down Expand Up @@ -355,8 +335,9 @@ private void createClassesAndEnums(JsonObject jsonObject) {
customType = toTitle(parent.parent.jsonName) + toTitle(parent.jsonName);
typeScope().createNestedClass(customType, this, jsonObject);
} else {
if (customTypeNames.containsKey(jsonPath)) {
customType = customTypeNames.get(jsonPath);
String alias = javaAlias(jsonObject);
if (alias != null) {
customType = alias;
} else {
customType = toTitle(parent.jsonName);
}
Expand Down Expand Up @@ -534,15 +515,12 @@ private String convertBuiltinType(JsonObject jsonType) {
return convertTemplateParams(jsonType);
}
if ("function".equals(name)) {
String alias = javaAlias(jsonType);
if (alias != null) {
return alias;
}
if (!jsonType.has("args")) {
switch (jsonPath) {
case "BrowserContext.exposeBinding.callback": return "BindingCallback";
case "BrowserContext.exposeFunction.callback": return "FunctionCallback";
case "Page.exposeBinding.callback": return "BindingCallback";
case "Page.exposeFunction.callback": return "FunctionCallback";
default:
throw new RuntimeException("Missing mapping for " + jsonPath);
}
throw new RuntimeException("Missing mapping for " + jsonPath);
}
if ("WebSocketRoute.onClose.handler".equals(jsonPath)) {
return "BiConsumer<Integer, String>";
Expand Down
Loading