From 87d259007a58d64797b504773cf474d29c626b17 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Wed, 1 Apr 2015 10:00:03 +0200 Subject: [PATCH] [system.net.http] Use correct separator for headers tostring --- .../System.Net.Http.Headers/HttpHeaders.cs | 11 +++++++++-- .../Test/System.Net.Http.Headers/HttpHeadersTest.cs | 8 ++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs b/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs index d8a60be17a6..a114aa0ffe0 100644 --- a/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs +++ b/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs @@ -350,10 +350,17 @@ namespace System.Net.Http.Headers sb.Append (entry.Key); sb.Append (": "); + string separator = ","; + HeaderInfo headerInfo; + if (known_headers.TryGetValue (entry.Key, out headerInfo) && headerInfo.AllowsMany) + separator = headerInfo.Separator; + bool first = true; foreach (var v in entry.Value) { - if (!first) - sb.Append (", "); + if (!first) { + sb.Append (separator); + sb.Append (" "); + } sb.Append (v); first = false; diff --git a/mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpHeadersTest.cs b/mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpHeadersTest.cs index cae4a65c82a..9839d467341 100644 --- a/mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpHeadersTest.cs +++ b/mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpHeadersTest.cs @@ -147,5 +147,13 @@ namespace MonoTests.System.Net.Http.Headers Assert.AreEqual ("aa: v, v\r\nx: v\r\n", headers.ToString ()); } + + [Test] + public void ToString_DifferentSeparator () + { + headers.Add ("User-Agent", "MyApp/1.0.0.0 (iOS; 7.1.2; fr_FR) (Apple; iPhone3,1)"); + + Assert.AreEqual ("User-Agent: MyApp/1.0.0.0 (iOS; 7.1.2; fr_FR) (Apple; iPhone3,1)\r\n", headers.ToString ()); + } } } -- 2.25.1