Skip to content

Commit 97ffee1

Browse files
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 <[email protected]> Co-authored-by: Jeff Ching <[email protected]>
1 parent adad01e commit 97ffee1

File tree

2 files changed

+44
-3
lines changed

2 files changed

+44
-3
lines changed

google-http-client/src/main/java/com/google/api/client/http/HttpRequestFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,13 @@ public HttpRequestInitializer getInitializer() {
8484
public HttpRequest buildRequest(String requestMethod, GenericUrl url, HttpContent content)
8585
throws IOException {
8686
HttpRequest request = transport.buildRequest();
87+
if (url != null) {
88+
request.setUrl(url);
89+
}
8790
if (initializer != null) {
8891
initializer.initialize(request);
8992
}
9093
request.setRequestMethod(requestMethod);
91-
if (url != null) {
92-
request.setUrl(url);
93-
}
9494
if (content != null) {
9595
request.setContent(content);
9696
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright 2021 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5+
* in compliance with the License. You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License
10+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11+
* or implied. See the License for the specific language governing permissions and limitations under
12+
* the License.
13+
*/
14+
15+
package com.google.api.client.http;
16+
17+
import com.google.api.client.http.javanet.NetHttpTransport;
18+
import java.io.IOException;
19+
import junit.framework.TestCase;
20+
21+
/** Tests {@link HttpRequestFactory}. */
22+
public class HttpRequestFactoryTest extends TestCase {
23+
24+
public void testBuildRequest_urlShouldBeSet() throws IllegalArgumentException, IOException {
25+
HttpRequestFactory requestFactory =
26+
new NetHttpTransport()
27+
.createRequestFactory(
28+
new HttpRequestInitializer() {
29+
@Override
30+
public void initialize(HttpRequest request) {
31+
// Url should be set by buildRequest method before calling initialize.
32+
if (request.getUrl() == null) {
33+
throw new IllegalArgumentException("url is not set in request");
34+
}
35+
}
36+
});
37+
GenericUrl url = new GenericUrl("https://foo.googleapis.com/");
38+
HttpRequest request = requestFactory.buildRequest("GET", url, null);
39+
assertEquals(url, request.getUrl());
40+
}
41+
}

0 commit comments

Comments
 (0)