Skip to content

Commit 8aa4b2e

Browse files
committed
fix DefaultHttpProvider.hasHeader
1 parent cfc54a5 commit 8aa4b2e

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

src/main/java/com/microsoft/graph/http/DefaultHttpProvider.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
package com.microsoft.graph.http;
2424

25+
import com.google.common.annotations.VisibleForTesting;
2526
import com.microsoft.graph.authentication.IAuthenticationProvider;
2627
import com.microsoft.graph.concurrency.ICallback;
2728
import com.microsoft.graph.concurrency.IExecutors;
@@ -440,13 +441,14 @@ public static String streamToString(final InputStream input) {
440441
* Searches for the given header in a list of HeaderOptions
441442
*
442443
* @param headers The list of headers to search through
443-
* @param header The header name to search for
444+
* @param header The header name to search for (case insensitive)
444445
*
445446
* @return true if the header has already been set
446447
*/
447-
private Boolean hasHeader(List<HeaderOption> headers, String header) {
448+
@VisibleForTesting
449+
static boolean hasHeader(List<HeaderOption> headers, String header) {
448450
for (HeaderOption option : headers) {
449-
if (option.getName() == header) {
451+
if (option.getName().equalsIgnoreCase(header)) {
450452
return true;
451453
}
452454
}

src/test/java/com/microsoft/graph/http/DefaultHttpProviderTests.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,15 @@
3131
import com.microsoft.graph.core.GraphErrorCodes;
3232
import com.microsoft.graph.models.extensions.Drive;
3333
import com.microsoft.graph.models.extensions.DriveItem;
34+
import com.microsoft.graph.options.HeaderOption;
3435
import com.microsoft.graph.logger.LoggerLevel;
3536
import com.microsoft.graph.logger.MockLogger;
3637
import com.microsoft.graph.serializer.MockSerializer;
3738

3839
import static org.junit.Assert.*;
3940

4041
import java.io.InputStream;
42+
import java.util.Arrays;
4143
import java.util.HashMap;
4244
import java.util.Map;
4345
import java.util.concurrent.atomic.AtomicBoolean;
@@ -345,6 +347,25 @@ public Map<String, String> getHeaders() {
345347
}
346348
assertEquals(codes.length, mAuthenticationProvider.getInterceptionCount());
347349
}
350+
351+
@Test
352+
public void testHasHeaderReturnsTrue() {
353+
HeaderOption h = new HeaderOption("name", "value");
354+
assertTrue(DefaultHttpProvider.hasHeader(Arrays.asList(h), "name"));
355+
}
356+
357+
@Test
358+
public void testHasHeaderReturnsTrueWhenDifferentCase() {
359+
HeaderOption h = new HeaderOption("name", "value");
360+
assertTrue(DefaultHttpProvider.hasHeader(Arrays.asList(h), "NAME"));
361+
}
362+
363+
@Test
364+
public void testHasHeaderReturnsFalse() {
365+
HeaderOption h = new HeaderOption("name", "value");
366+
assertFalse(DefaultHttpProvider.hasHeader(Arrays.asList(h), "blah"));
367+
}
368+
348369

349370
/**
350371
* Configures the http provider for test cases

0 commit comments

Comments
 (0)