public void ReadAsHttpRequestMessageAsync_RequestWithEntity_ShouldReturnHttpRequestMessage() { HttpContent content = CreateContent(isRequest: true, hasEntity: true); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; ValidateRequestMessage(httpRequest, hasEntity: true); }
public async Task ReadAsHttpRequestMessageAsync_RequestWithEntity_ShouldReturnHttpRequestMessage() { HttpContent content = CreateContent(isRequest: true, hasEntity: true); HttpRequestMessage httpRequest = await content.ReadAsHttpRequestMessageAsync(); await ValidateRequestMessageAsync(httpRequest, hasEntity : true); }
public void ReadAsHttpRequestMessageAsync_WithHttpsUriScheme_ReturnsUriWithHttps() { HttpContent content = CreateContent(isRequest: true, hasEntity: true); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync(Uri.UriSchemeHttps).Result; Assert.Equal(ParserData.HttpsRequestUri, httpRequest.RequestUri); }
public Task ReadAsHttpRequestMessageAsync_cancellationToken_PassesCancellationToken() { CancellationTokenSource cts = new CancellationTokenSource(); cts.Cancel(); HttpContent content = CreateContent(isRequest: true, hasEntity: false); return(Assert.ThrowsAsync <OperationCanceledException>(() => content.ReadAsHttpRequestMessageAsync(cts.Token))); }
public void ReadAsHttpRequestMessageAsync_cancellationToken_PassesCancellationToken() { CancellationTokenSource cts = new CancellationTokenSource(); cts.Cancel(); HttpContent content = CreateContent(isRequest: true, hasEntity: false); Assert.Throws <TaskCanceledException>(() => content.ReadAsHttpRequestMessageAsync(cts.Token).Wait()); }
public void ReadAsHttpRequestMessageAsync_NoHostHeader_Throws() { string[] request = new[] { @"GET / HTTP/1.1", }; HttpContent content = CreateContent(true, request, null); Assert.Throws <InvalidOperationException>(() => content.ReadAsHttpRequestMessageAsync().Result); }
public void ReadAsHttpRequestMessageAsync_LargeHeaderSize() { string[] request = new[] { @"GET / HTTP/1.1", @"Host: msdn.microsoft.com", String.Format("Cookie: {0}={1}", new String('a', 16 * 1024), new String('b', 16 * 1024)) }; HttpContent content = CreateContent(true, request, "sample body"); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync(Uri.UriSchemeHttp, 64 * 1024, 64 * 1024).Result; }
public void ReadAsHttpRequestMessageAsync_TwoHostHeaders_ThrowsIOException() { string[] request = new[] { @"GET / HTTP/1.1", @"Host: somehost.com", @"Host: otherhost.com", }; HttpContent content = CreateContent(true, request, null); Assert.Throws <IOException>(() => content.ReadAsHttpRequestMessageAsync().Result); }
public Task ReadAsHttpRequestMessageAsync_TwoHostHeaders_Throws() { string[] request = new[] { @"GET / HTTP/1.1", @"Host: somehost.com", @"Host: otherhost.com", }; HttpContent content = CreateContent(true, request, null); return(Assert.ThrowsAsync <InvalidOperationException>(() => content.ReadAsHttpRequestMessageAsync())); }
public void ReadAsHttpRequestMessageAsync_Throws_TheHeaderSizeExceededTheDefaultLimit() { string[] request = new[] { @"GET / HTTP/1.1", @"Host: msdn.microsoft.com", String.Format("Cookie: {0}={1}", new String('a', 16 * 1024), new String('b', 16 * 1024)) }; Assert.Throws <InvalidOperationException>(() => { HttpContent content = CreateContent(true, request, "sample body"); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; }); }
public void RoundtripClientRequest(IEnumerable <string> message) { HttpContent content = CreateContent(true, message, null); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; HttpMessageContent httpMessageContent = new HttpMessageContent(httpRequest); MemoryStream destination = new MemoryStream(); httpMessageContent.CopyToAsync(destination).Wait(); destination.Seek(0, SeekOrigin.Begin); string destinationMessage = new StreamReader(destination).ReadToEnd(); string sourceMessage = content.ReadAsStringAsync().Result; Assert.Equal(sourceMessage, destinationMessage); }
public void ReadAsHttpRequestMessageAsync_Opera_ShouldBeDeserializedCorrectly() { string[] request = new string[] { @"GET / HTTP/1.0", @"User-Agent: Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11", @"Host: msdn.microsoft.com", @"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1", @"Accept-Language: en-US,en;q=0.9", @"Accept-Encoding: gzip, deflate", @"Proxy-Connection: Keep-Alive", }; HttpContent content = CreateContent(true, request, null); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; Assert.True(httpRequest.Headers.Contains("proxy-connection")); }
public void ReadAsHttpRequestMessageAsync_Firefox_ShouldBeDeserializedCorrectly() { string[] request = new[] { @"GET / HTTP/1.1", @"Host: msdn.microsoft.com", @"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", @"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", @"Accept-Language: en-us,en;q=0.5", @"Accept-Encoding: gzip, deflate", @"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7", @"Proxy-Connection: keep-alive", }; HttpContent content = CreateContent(true, request, null); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; Assert.True(httpRequest.Headers.Contains("proxy-connection")); }
public void ReadAsHttpRequestMessageAsync_Chrome_ShouldBeDeserializedCorrectly() { string[] request = new string[] { @"GET / HTTP/1.1", @"Host: msdn.microsoft.com", @"Proxy-Connection: keep-alive", @"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", @"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", @"Accept-Encoding: gzip,deflate,sdch", @"Accept-Language: en-US,en;q=0.8", @"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3", }; HttpContent content = CreateContent(true, request, null); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; Assert.True(httpRequest.Headers.Contains("accept-charset")); }
public void ReadAsHttpRequestMessageAsync_IE_ShouldBeDeserializedCorrectly() { string[] request = new[] { @"GET / HTTP/1.1", @"Accept: text/html, application/xhtml+xml, */*", @"Accept-Language: en-US", @"User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)", @"Accept-Encoding: gzip, deflate", @"Proxy-Connection: Keep-Alive", @"Host: msdn.microsoft.com", @"Cookie: omniID=1297715979621_9f45_1519_3f8a_f22f85346ac6; WT_FPC=id=65.55.227.138-2323234032.30136233:lv=1309374389020:ss=1309374389020; A=I&I=AxUFAAAAAACNCAAADYEZ7CFPss7Swnujy4PXZA!!&M=1&CS=126mAa0002ZB51a02gZB51a; MC1=GUID=568428660ad44d4ab8f46133f4b03738&HASH=6628&LV=20113&V=3; WT_NVR_RU=0=msdn:1=:2=; MUID=A44DE185EA1B4E8088CCF7B348C5D65F; MSID=Microsoft.CreationDate=03/04/2011 23:38:15&Microsoft.LastVisitDate=06/20/2011 04:15:08&Microsoft.VisitStartDate=06/20/2011 04:15:08&Microsoft.CookieId=f658f3f2-e6d6-42ab-b86b-96791b942b6f&Microsoft.TokenId=ffffffff-ffff-ffff-ffff-ffffffffffff&Microsoft.NumberOfVisits=106&Microsoft.CookieFirstVisit=1&Microsoft.IdentityToken=AA==&Microsoft.MicrosoftId=0441-6141-1523-9969; msresearch=%7B%22version%22%3A%224.6%22%2C%22state%22%3A%7B%22name%22%3A%22IDLE%22%2C%22url%22%3Aundefined%2C%22timestamp%22%3A1299281911415%7D%2C%22lastinvited%22%3A1299281911415%2C%22userid%22%3A%2212992819114151265672533023080%22%2C%22vendorid%22%3A1%2C%22surveys%22%3A%5Bundefined%5D%7D; CodeSnippetContainerLang=C#; msdn=L=1033; ADS=SN=175A21EF; s_cc=true; s_sq=%5B%5BB%5D%5D; TocHashCookie=ms310241(n)/aa187916(n)/aa187917(n)/dd273952(n)/dd295083(n)/ff472634(n)/ee667046(n)/ee667070(n)/gg259047(n)/gg618436(n)/; WT_NVR=0=/:1=query|library|en-us:2=en-us/vcsharp|en-us/library", }; HttpContent content = CreateContent(true, request, null); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; Assert.True(httpRequest.Headers.Contains("cookie")); }
public void ReadAsHttpRequestMessageAsync_Safari_ShouldBeDeserializedCorrectly() { string[] request = new string[] { @"GET / HTTP/1.1", @"Host: msdn.microsoft.com", @"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1", @"Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @"Accept-Language: en-US", @"Accept-Encoding: gzip, deflate", @"Connection: keep-alive", @"Proxy-Connection: keep-alive", }; HttpContent content = CreateContent(true, request, null); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; Assert.True(httpRequest.Headers.Contains("proxy-connection")); }
public void ReadAsHttpRequestMessageAsync_SortHeaders() { string[] request = new[] { @"GET / HTTP/1.1", @"Host: somehost.com", @"Content-Language: xx", @"Request-Header: zz", }; HttpContent content = CreateContent(true, request, "sample body"); HttpRequestMessage httpRequest = content.ReadAsHttpRequestMessageAsync().Result; Assert.Equal("xx", httpRequest.Content.Headers.ContentLanguage.ToString()); IEnumerable <string> requestHeaderValues; Assert.True(httpRequest.Headers.TryGetValues("request-header", out requestHeaderValues)); Assert.Equal("zz", requestHeaderValues.First()); }