From 97ffee1a68af6637dd5d53fcd70e2ce02c9c9604 Mon Sep 17 00:00:00 2001 From: arithmetic1728 <58957152+arithmetic1728@users.noreply.github.com> Date: Wed, 24 Feb 2021 14:33:04 -0800 Subject: [PATCH] fix: fix buildRequest setUrl order (#1255) * fix: fix buildRequest setUrl order * chore: add unit test * update * format * Update google-http-client/src/test/java/com/google/api/client/http/HttpRequestFactoryTest.java * Update google-http-client/src/test/java/com/google/api/client/http/HttpRequestFactoryTest.java Co-authored-by: Jeff Ching Co-authored-by: Jeff Ching --- .../api/client/http/HttpRequestFactory.java | 6 +-- .../client/http/HttpRequestFactoryTest.java | 41 +++++++++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 google-http-client/src/test/java/com/google/api/client/http/HttpRequestFactoryTest.java diff --git a/google-http-client/src/main/java/com/google/api/client/http/HttpRequestFactory.java b/google-http-client/src/main/java/com/google/api/client/http/HttpRequestFactory.java index a14058c8b..7a92a03bf 100644 --- a/google-http-client/src/main/java/com/google/api/client/http/HttpRequestFactory.java +++ b/google-http-client/src/main/java/com/google/api/client/http/HttpRequestFactory.java @@ -84,13 +84,13 @@ public HttpRequestInitializer getInitializer() { public HttpRequest buildRequest(String requestMethod, GenericUrl url, HttpContent content) throws IOException { HttpRequest request = transport.buildRequest(); + if (url != null) { + request.setUrl(url); + } if (initializer != null) { initializer.initialize(request); } request.setRequestMethod(requestMethod); - if (url != null) { - request.setUrl(url); - } if (content != null) { request.setContent(content); } diff --git a/google-http-client/src/test/java/com/google/api/client/http/HttpRequestFactoryTest.java b/google-http-client/src/test/java/com/google/api/client/http/HttpRequestFactoryTest.java new file mode 100644 index 000000000..568eb201c --- /dev/null +++ b/google-http-client/src/test/java/com/google/api/client/http/HttpRequestFactoryTest.java @@ -0,0 +1,41 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.api.client.http; + +import com.google.api.client.http.javanet.NetHttpTransport; +import java.io.IOException; +import junit.framework.TestCase; + +/** Tests {@link HttpRequestFactory}. */ +public class HttpRequestFactoryTest extends TestCase { + + public void testBuildRequest_urlShouldBeSet() throws IllegalArgumentException, IOException { + HttpRequestFactory requestFactory = + new NetHttpTransport() + .createRequestFactory( + new HttpRequestInitializer() { + @Override + public void initialize(HttpRequest request) { + // Url should be set by buildRequest method before calling initialize. + if (request.getUrl() == null) { + throw new IllegalArgumentException("url is not set in request"); + } + } + }); + GenericUrl url = new GenericUrl("https://foo.googleapis.com/"); + HttpRequest request = requestFactory.buildRequest("GET", url, null); + assertEquals(url, request.getUrl()); + } +}