From efbbb47626ded93f304fabea17fd07bb362d5119 Mon Sep 17 00:00:00 2001 From: Patrick Forhan Date: Thu, 14 Jan 2016 14:12:52 -0600 Subject: [PATCH] Tweak error copy, add a couple tests --- .../okhttp3/internal/http/HeadersTest.java | 20 +++++++++++++++++++ okhttp/src/main/java/okhttp3/Headers.java | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/okhttp-tests/src/test/java/okhttp3/internal/http/HeadersTest.java b/okhttp-tests/src/test/java/okhttp3/internal/http/HeadersTest.java index 039126387..4e649dc88 100644 --- a/okhttp-tests/src/test/java/okhttp3/internal/http/HeadersTest.java +++ b/okhttp-tests/src/test/java/okhttp3/internal/http/HeadersTest.java @@ -334,4 +334,24 @@ public final class HeadersTest { } catch (IndexOutOfBoundsException expected) { } } + + @Test public void builderRejectsUnicodeInHeaderName() { + try { + new Headers.Builder().add("héader1", "value1"); + fail("Should have complained about invalid name"); + } catch (IllegalArgumentException expected) { + assertEquals("Unexpected char 0xe9 at 1 in header name: héader1", + expected.getMessage()); + } + } + + @Test public void builderRejectsUnicodeInHeaderValue() { + try { + new Headers.Builder().add("header1", "valué1"); + fail("Should have complained about invalid value"); + } catch (IllegalArgumentException expected) { + assertEquals("Unexpected char 0xe9 at 4 in header1 value: valué1", + expected.getMessage()); + } + } } diff --git a/okhttp/src/main/java/okhttp3/Headers.java b/okhttp/src/main/java/okhttp3/Headers.java index a2dcf952d..6f72d0cc4 100644 --- a/okhttp/src/main/java/okhttp3/Headers.java +++ b/okhttp/src/main/java/okhttp3/Headers.java @@ -281,7 +281,7 @@ public final class Headers { char c = value.charAt(i); if (c <= '\u001f' || c >= '\u007f') { throw new IllegalArgumentException(String.format( - "Unexpected char %#04x at %d in header value: %s", (int) c, i, value)); + "Unexpected char %#04x at %d in %s value: %s", (int) c, i, name, value)); } } }