From fcb42469284acc334b4f01d406a0ab3a08ce4bdb Mon Sep 17 00:00:00 2001 From: Uladzislau Arlouski Date: Thu, 21 Nov 2024 16:15:06 +0200 Subject: [PATCH] just test --- .github/workflows/gradle.yml | 6 +++ browserup-proxy-core/build.gradle | 2 + .../mitmproxy/MitmProxyProcessManager.java | 3 +- .../management/AddonsManagerClient.java | 41 +++++++++++++------ 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 98c43d28..7b181c4d 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -43,3 +43,9 @@ jobs: run: | export MITMPROXY_BINARY_PATH=$(type -aP mitmdump | xargs dirname ) ./gradlew build -PMITMPROXY_BINARY_PATH="$MITMPROXY_BINARY_PATH" + + - name: Unit tests + uses: actions/upload-artifact@v4 + if: always() + with: + path: browserup-proxy-core/build/reports/tests diff --git a/browserup-proxy-core/build.gradle b/browserup-proxy-core/build.gradle index 9d3fdccf..8571f599 100644 --- a/browserup-proxy-core/build.gradle +++ b/browserup-proxy-core/build.gradle @@ -61,6 +61,8 @@ dependencies { implementation project(':browserup-proxy-mitm') + implementation "com.squareup.okhttp3:okhttp:4.12.0" + implementation 'javax.xml.bind:jaxb-api:2.3.1' implementation 'org.awaitility:awaitility:4.2.2' diff --git a/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/MitmProxyProcessManager.java b/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/MitmProxyProcessManager.java index 8c81f358..ddde0012 100644 --- a/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/MitmProxyProcessManager.java +++ b/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/MitmProxyProcessManager.java @@ -5,7 +5,6 @@ import org.apache.commons.lang3.SystemUtils; import org.awaitility.Awaitility; import org.awaitility.core.ConditionTimeoutException; -import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -214,7 +213,7 @@ private void waitForReady() { } } - @NotNull + // @NotNull private ArrayList createCommand(int port, List addons) { ArrayList command = new ArrayList() {{ add(getMitmproxyBinaryPath()); diff --git a/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/management/AddonsManagerClient.java b/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/management/AddonsManagerClient.java index 8439a04e..72eb5ce2 100644 --- a/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/management/AddonsManagerClient.java +++ b/browserup-proxy-core/src/main/java/com/browserup/bup/mitmproxy/management/AddonsManagerClient.java @@ -1,6 +1,7 @@ package com.browserup.bup.mitmproxy.management; import com.fasterxml.jackson.databind.ObjectMapper; +import okhttp3.HttpUrl; import org.apache.commons.lang3.tuple.Pair; import java.io.IOException; @@ -14,6 +15,9 @@ import java.util.Objects; import java.util.stream.Collectors; +import static java.lang.String.valueOf; +import static org.apache.commons.lang3.tuple.Pair.of; + public class AddonsManagerClient { private final HttpClient httpClient = HttpClient.newHttpClient(); @@ -49,8 +53,7 @@ public T requestToAddonsManager(String addOnPath, String contentType, Class responseClass) { HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() - .uri(buildRequestUrl(addOnPath, operation, queryParams)) - .method(method, requestBody); + .uri(buildRequestUrl(addOnPath, operation, queryParams).uri()); if (requestBody != null) { requestBuilder.method(method, requestBody).header("Content-Type", contentType); @@ -78,15 +81,29 @@ public T requestToAddonsManager(String addOnPath, } } - private URI buildRequestUrl(String addOnPath, String operation, List> queryParams) { - String path = String.format("/%s/%s", addOnPath, operation); - String query = queryParams.stream() - .map(p -> p.getKey() + "=" + p.getValue()) - .collect(Collectors.joining("&")); - try { - return new URI("http", null, host, port, path, query, null); - } catch (URISyntaxException e) { - throw new IllegalArgumentException(e.getMessage(), e); - } +// private URI buildRequestUrl(String addOnPath, String operation, List> queryParams) { +// String path = String.format("/%s/%s", addOnPath, operation); +// String query = queryParams.stream() +// .map(p -> p.getKey() + "=" + p.getValue()) +// .collect(Collectors.joining("&")); +// try { +// System.out.println(new URI("http", null, host, port, path, query, null)); +// return new URI("http", null, host, port, path, query, null); +// } catch (URISyntaxException e) { +// throw new IllegalArgumentException(e.getMessage(), e); +// } +// } + + private HttpUrl buildRequestUrl(String addOnPath, String operation, List> queryParams) { + HttpUrl.Builder builder = new HttpUrl.Builder() + .host(host) + .port(port) + .scheme("http") + .addPathSegment(addOnPath) + .addPathSegment(operation); + + queryParams.forEach(p -> builder.addQueryParameter(p.getKey(), p.getValue())); + + return builder.build(); } }