Skip to content

Commit 8217035

Browse files
andrey-qlogicsduskis
authored andcommitted
Added Warning header and unit tests. (#601)
* Added Warning header and unit tests. * Changes after review * Method setWarning renamed to addWarning that makes it more accurate * Renamed warning variable to warnings * Reverting back to "warning" rather than "warnings" * Update HttpHeadersTest.java
1 parent 6c6b2dc commit 8217035

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ public HttpHeaders() {
158158
@Key("User-Agent")
159159
private List<String> userAgent;
160160

161+
/** {@code "Warning"} header. */
162+
@Key("Warning")
163+
private List<String> warning;
164+
161165
/** {@code "WWW-Authenticate"} header. */
162166
@Key("WWW-Authenticate")
163167
private List<String> authenticate;
@@ -811,6 +815,35 @@ public HttpHeaders setAuthenticate(String authenticate) {
811815
return this;
812816
}
813817

818+
/**
819+
* Adds the {@code "Warning"} header or {@code null} for none.
820+
*
821+
* <p>Overriding is only supported for the purpose of calling the super implementation and
822+
* changing the return type, but nothing else.
823+
*
824+
* @since 1.28
825+
*/
826+
public HttpHeaders addWarning(String warning) {
827+
if (warning == null) {
828+
return this;
829+
}
830+
if (this.warning == null) {
831+
this.warning = getAsList(warning);
832+
} else {
833+
this.warning.add(warning);
834+
}
835+
return this;
836+
}
837+
838+
/**
839+
* Returns all {@code "Warning"} headers or {@code null} for none.
840+
*
841+
* @since 1.28
842+
*/
843+
public final List<String> getWarning() {
844+
return warning == null ? null : new ArrayList<>(warning);
845+
}
846+
814847
/**
815848
* Returns the first {@code "Age"} header or {@code null} for none.
816849
*

google-http-client/src/test/java/com/google/api/client/http/HttpHeadersTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ public void testSerializeHeaders() throws Exception {
8686
myHeaders.setAcceptEncoding(null);
8787
myHeaders.setContentLength(Long.MAX_VALUE);
8888
myHeaders.setUserAgent("foo");
89+
myHeaders.addWarning("warn0");
90+
myHeaders.addWarning("warn1");
8991
myHeaders.set("a", "b");
9092
myHeaders.value = E.VALUE;
9193
myHeaders.otherValue = E.OTHER_VALUE;
@@ -103,6 +105,7 @@ public void testSerializeHeaders() throws Exception {
103105
assertEquals(ImmutableList.of("a1", "a2"), lowLevelRequest.getHeaderValues("r"));
104106
assertTrue(lowLevelRequest.getHeaderValues("accept-encoding").isEmpty());
105107
assertEquals(ImmutableList.of("foo"), lowLevelRequest.getHeaderValues("user-agent"));
108+
assertEquals(ImmutableList.of("warn0", "warn1"), lowLevelRequest.getHeaderValues("warning"));
106109
assertEquals(ImmutableList.of("b"), lowLevelRequest.getHeaderValues("a"));
107110
assertEquals(ImmutableList.of("VALUE"), lowLevelRequest.getHeaderValues("value"));
108111
assertEquals(ImmutableList.of("other"), lowLevelRequest.getHeaderValues("othervalue"));
@@ -128,6 +131,8 @@ public void testSerializeHeaders() throws Exception {
128131
expectedOutput.append("someLong: 0\r\n");
129132
expectedOutput.append("User-Agent: foo\r\n");
130133
expectedOutput.append("value: VALUE\r\n");
134+
expectedOutput.append("Warning: warn0\r\n");
135+
expectedOutput.append("Warning: warn1\r\n");
131136
expectedOutput.append("a: b\r\n");
132137

133138
assertEquals(expectedOutput.toString(), outputStream.toString());
@@ -139,6 +144,8 @@ public void testFromHttpHeaders() {
139144
rawHeaders.setContentLength(Long.MAX_VALUE);
140145
rawHeaders.setContentType("foo/bar");
141146
rawHeaders.setUserAgent("FooBar");
147+
rawHeaders.addWarning("warn0");
148+
rawHeaders.addWarning("warn1");
142149
rawHeaders.set("foo", "bar");
143150
rawHeaders.set("someLong", "5");
144151
rawHeaders.set("list", ImmutableList.of("a", "b", "c"));
@@ -154,6 +161,8 @@ public void testFromHttpHeaders() {
154161
assertEquals(Long.MAX_VALUE, myHeaders.getContentLength().longValue());
155162
assertEquals("foo/bar", myHeaders.getContentType());
156163
assertEquals("FooBar", myHeaders.getUserAgent());
164+
assertEquals("warn0", myHeaders.getWarning().get(0));
165+
assertEquals("warn1", myHeaders.getWarning().get(1));
157166
assertEquals("bar", myHeaders.foo);
158167
assertEquals(5, myHeaders.someLong);
159168
assertEquals(ImmutableList.of("5"), myHeaders.objNum);
@@ -197,6 +206,7 @@ public void testHeaderStringValues() {
197206
myHeaders.setAcceptEncoding(null);
198207
myHeaders.setContentLength(Long.MAX_VALUE);
199208
myHeaders.setUserAgent("foo");
209+
myHeaders.addWarning("warn");
200210
myHeaders.set("a", "b");
201211
myHeaders.value = E.VALUE;
202212
myHeaders.otherValue = E.OTHER_VALUE;
@@ -207,6 +217,7 @@ public void testHeaderStringValues() {
207217
assertEquals("a1", myHeaders.getFirstHeaderStringValue("r"));
208218
assertNull(myHeaders.getFirstHeaderStringValue("accept-encoding"));
209219
assertEquals("foo", myHeaders.getFirstHeaderStringValue("user-agent"));
220+
assertEquals("warn", myHeaders.getFirstHeaderStringValue("warning"));
210221
assertEquals("b", myHeaders.getFirstHeaderStringValue("a"));
211222
assertEquals("VALUE", myHeaders.getFirstHeaderStringValue("value"));
212223
assertEquals("other", myHeaders.getFirstHeaderStringValue("othervalue"));
@@ -219,6 +230,7 @@ public void testHeaderStringValues() {
219230
assertEquals(ImmutableList.of("a1", "a2"), myHeaders.getHeaderStringValues("r"));
220231
assertTrue(myHeaders.getHeaderStringValues("accept-encoding").isEmpty());
221232
assertEquals(ImmutableList.of("foo"), myHeaders.getHeaderStringValues("user-agent"));
233+
assertEquals(ImmutableList.of("warn"), myHeaders.getHeaderStringValues("warning"));
222234
assertEquals(ImmutableList.of("b"), myHeaders.getHeaderStringValues("a"));
223235
assertEquals(ImmutableList.of("VALUE"), myHeaders.getHeaderStringValues("value"));
224236
assertEquals(ImmutableList.of("other"), myHeaders.getHeaderStringValues("othervalue"));

0 commit comments

Comments
 (0)