|
|
@ -55,7 +55,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_execute_simple_get()
|
|
|
|
public void should_execute_simple_get()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Execute(request);
|
|
|
|
var response = Subject.Execute(request);
|
|
|
|
|
|
|
|
|
|
|
@ -75,7 +75,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_execute_typed_get()
|
|
|
|
public void should_execute_typed_get()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get?test=1");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get?test=1");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
@ -88,7 +88,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var message = "{ my: 1 }";
|
|
|
|
var message = "{ my: 1 }";
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/post");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/post");
|
|
|
|
request.SetContent(message);
|
|
|
|
request.SetContent(message);
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Post<HttpBinResource>(request);
|
|
|
|
var response = Subject.Post<HttpBinResource>(request);
|
|
|
@ -99,7 +99,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[TestCase("gzip")]
|
|
|
|
[TestCase("gzip")]
|
|
|
|
public void should_execute_get_using_gzip(string compression)
|
|
|
|
public void should_execute_get_using_gzip(string compression)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/{compression}");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/{compression}");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
@ -115,7 +115,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[TestCase(HttpStatusCode.BadGateway)]
|
|
|
|
[TestCase(HttpStatusCode.BadGateway)]
|
|
|
|
public void should_throw_on_unsuccessful_status_codes(int statusCode)
|
|
|
|
public void should_throw_on_unsuccessful_status_codes(int statusCode)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/status/{statusCode}");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/status/{statusCode}");
|
|
|
|
|
|
|
|
|
|
|
|
var exception = Assert.Throws<HttpException>(() => Subject.Get<HttpBinResource>(request));
|
|
|
|
var exception = Assert.Throws<HttpException>(() => Subject.Get<HttpBinResource>(request));
|
|
|
|
|
|
|
|
|
|
|
@ -127,7 +127,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_not_follow_redirects_when_not_in_production()
|
|
|
|
public void should_not_follow_redirects_when_not_in_production()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/redirect/1");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/redirect/1");
|
|
|
|
|
|
|
|
|
|
|
|
Subject.Get(request);
|
|
|
|
Subject.Get(request);
|
|
|
|
|
|
|
|
|
|
|
@ -137,7 +137,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_follow_redirects()
|
|
|
|
public void should_follow_redirects()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/redirect/1");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/redirect/1");
|
|
|
|
request.AllowAutoRedirect = true;
|
|
|
|
request.AllowAutoRedirect = true;
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get(request);
|
|
|
|
var response = Subject.Get(request);
|
|
|
@ -150,7 +150,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_not_follow_redirects()
|
|
|
|
public void should_not_follow_redirects()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/redirect/1");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/redirect/1");
|
|
|
|
request.AllowAutoRedirect = false;
|
|
|
|
request.AllowAutoRedirect = false;
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get(request);
|
|
|
|
var response = Subject.Get(request);
|
|
|
@ -168,7 +168,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
Assert.Ignore("Will fail on tls1.2 via managed dispatcher, ignore.");
|
|
|
|
Assert.Ignore("Will fail on tls1.2 via managed dispatcher, ignore.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequestBuilder($"http://{_httpBinHost}/redirect-to")
|
|
|
|
var request = new HttpRequestBuilder($"https://{_httpBinHost}/redirect-to")
|
|
|
|
.AddQueryParam("url", $"https://lidarr.audio/")
|
|
|
|
.AddQueryParam("url", $"https://lidarr.audio/")
|
|
|
|
.Build();
|
|
|
|
.Build();
|
|
|
|
request.AllowAutoRedirect = true;
|
|
|
|
request.AllowAutoRedirect = true;
|
|
|
@ -184,7 +184,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_throw_on_too_many_redirects()
|
|
|
|
public void should_throw_on_too_many_redirects()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/redirect/4");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/redirect/4");
|
|
|
|
request.AllowAutoRedirect = true;
|
|
|
|
request.AllowAutoRedirect = true;
|
|
|
|
|
|
|
|
|
|
|
|
Assert.Throws<WebException>(() => Subject.Get(request));
|
|
|
|
Assert.Throws<WebException>(() => Subject.Get(request));
|
|
|
@ -195,7 +195,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_send_user_agent()
|
|
|
|
public void should_send_user_agent()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
@ -209,7 +209,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[TestCase("Accept", "text/xml, text/rss+xml, application/rss+xml")]
|
|
|
|
[TestCase("Accept", "text/xml, text/rss+xml, application/rss+xml")]
|
|
|
|
public void should_send_headers(string header, string value)
|
|
|
|
public void should_send_headers(string header, string value)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
request.Headers.Add(header, value);
|
|
|
|
request.Headers.Add(header, value);
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
@ -222,7 +222,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var file = GetTempFilePath();
|
|
|
|
var file = GetTempFilePath();
|
|
|
|
|
|
|
|
|
|
|
|
Assert.Throws<WebException>(() => Subject.DownloadFile("http://download.lidarr.audio/wrongpath", file));
|
|
|
|
Assert.Throws<WebException>(() => Subject.DownloadFile("https://download.lidarr.audio/wrongpath", file));
|
|
|
|
|
|
|
|
|
|
|
|
File.Exists(file).Should().BeFalse();
|
|
|
|
File.Exists(file).Should().BeFalse();
|
|
|
|
|
|
|
|
|
|
|
@ -232,7 +232,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_send_cookie()
|
|
|
|
public void should_send_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
request.Cookies["my"] = "cookie";
|
|
|
|
request.Cookies["my"] = "cookie";
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
@ -246,7 +246,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
public void GivenOldCookie()
|
|
|
|
public void GivenOldCookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var oldRequest = new HttpRequest("http://eu.httpbin.org/get");
|
|
|
|
var oldRequest = new HttpRequest("https://eu.httpbin.org/get");
|
|
|
|
oldRequest.Cookies["my"] = "cookie";
|
|
|
|
oldRequest.Cookies["my"] = "cookie";
|
|
|
|
|
|
|
|
|
|
|
|
var oldClient = new HttpClient(new IHttpRequestInterceptor[0], Mocker.Resolve<ICacheManager>(), Mocker.Resolve<IRateLimitService>(), Mocker.Resolve<IHttpDispatcher>(), Mocker.GetMock<IUserAgentBuilder>().Object, Mocker.Resolve<Logger>());
|
|
|
|
var oldClient = new HttpClient(new IHttpRequestInterceptor[0], Mocker.Resolve<ICacheManager>(), Mocker.Resolve<IRateLimitService>(), Mocker.Resolve<IHttpDispatcher>(), Mocker.GetMock<IUserAgentBuilder>().Object, Mocker.Resolve<Logger>());
|
|
|
@ -263,7 +263,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
{
|
|
|
|
{
|
|
|
|
GivenOldCookie();
|
|
|
|
GivenOldCookie();
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequest("http://eu.httpbin.org/get");
|
|
|
|
var request = new HttpRequest("https://eu.httpbin.org/get");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
@ -279,7 +279,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
{
|
|
|
|
{
|
|
|
|
GivenOldCookie();
|
|
|
|
GivenOldCookie();
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequest("http://httpbin.org/get");
|
|
|
|
var request = new HttpRequest("https://httpbin.org/get");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
@ -289,14 +289,14 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_not_store_request_cookie()
|
|
|
|
public void should_not_store_request_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestGet = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var requestGet = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
requestGet.Cookies.Add("my", "cookie");
|
|
|
|
requestGet.Cookies.Add("my", "cookie");
|
|
|
|
requestGet.AllowAutoRedirect = false;
|
|
|
|
requestGet.AllowAutoRedirect = false;
|
|
|
|
requestGet.StoreRequestCookie = false;
|
|
|
|
requestGet.StoreRequestCookie = false;
|
|
|
|
requestGet.StoreResponseCookie = false;
|
|
|
|
requestGet.StoreResponseCookie = false;
|
|
|
|
var responseGet = Subject.Get<HttpBinResource>(requestGet);
|
|
|
|
var responseGet = Subject.Get<HttpBinResource>(requestGet);
|
|
|
|
|
|
|
|
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
|
|
|
|
|
|
|
@ -308,14 +308,14 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_store_request_cookie()
|
|
|
|
public void should_store_request_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestGet = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var requestGet = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
requestGet.Cookies.Add("my", "cookie");
|
|
|
|
requestGet.Cookies.Add("my", "cookie");
|
|
|
|
requestGet.AllowAutoRedirect = false;
|
|
|
|
requestGet.AllowAutoRedirect = false;
|
|
|
|
requestGet.StoreRequestCookie.Should().BeTrue();
|
|
|
|
requestGet.StoreRequestCookie.Should().BeTrue();
|
|
|
|
requestGet.StoreResponseCookie = false;
|
|
|
|
requestGet.StoreResponseCookie = false;
|
|
|
|
var responseGet = Subject.Get<HttpBinResource>(requestGet);
|
|
|
|
var responseGet = Subject.Get<HttpBinResource>(requestGet);
|
|
|
|
|
|
|
|
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
|
|
|
|
|
|
|
@ -327,7 +327,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_delete_request_cookie()
|
|
|
|
public void should_delete_request_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestDelete = new HttpRequest($"http://{_httpBinHost}/cookies/delete?my");
|
|
|
|
var requestDelete = new HttpRequest($"https://{_httpBinHost}/cookies/delete?my");
|
|
|
|
requestDelete.Cookies.Add("my", "cookie");
|
|
|
|
requestDelete.Cookies.Add("my", "cookie");
|
|
|
|
requestDelete.AllowAutoRedirect = true;
|
|
|
|
requestDelete.AllowAutoRedirect = true;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
@ -342,7 +342,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_clear_request_cookie()
|
|
|
|
public void should_clear_request_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestSet = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestSet = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestSet.Cookies.Add("my", "cookie");
|
|
|
|
requestSet.Cookies.Add("my", "cookie");
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.StoreRequestCookie = true;
|
|
|
|
requestSet.StoreRequestCookie = true;
|
|
|
@ -350,7 +350,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
var responseSet = Subject.Get<HttpCookieResource>(requestSet);
|
|
|
|
var responseSet = Subject.Get<HttpCookieResource>(requestSet);
|
|
|
|
|
|
|
|
|
|
|
|
var requestClear = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestClear = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestClear.Cookies.Add("my", null);
|
|
|
|
requestClear.Cookies.Add("my", null);
|
|
|
|
requestClear.AllowAutoRedirect = false;
|
|
|
|
requestClear.AllowAutoRedirect = false;
|
|
|
|
requestClear.StoreRequestCookie = true;
|
|
|
|
requestClear.StoreRequestCookie = true;
|
|
|
@ -364,14 +364,14 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_not_store_response_cookie()
|
|
|
|
public void should_not_store_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestSet = new HttpRequest($"http://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
var requestSet = new HttpRequest($"https://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreResponseCookie.Should().BeFalse();
|
|
|
|
requestSet.StoreResponseCookie.Should().BeFalse();
|
|
|
|
|
|
|
|
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
|
|
|
|
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
|
|
|
|
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
|
|
|
|
|
|
|
@ -383,14 +383,14 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_store_response_cookie()
|
|
|
|
public void should_store_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestSet = new HttpRequest($"http://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
var requestSet = new HttpRequest($"https://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreResponseCookie = true;
|
|
|
|
requestSet.StoreResponseCookie = true;
|
|
|
|
|
|
|
|
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
|
|
|
|
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
|
|
|
|
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
|
|
|
|
|
|
|
@ -402,7 +402,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_temp_store_response_cookie()
|
|
|
|
public void should_temp_store_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestSet = new HttpRequest($"http://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
var requestSet = new HttpRequest($"https://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
requestSet.AllowAutoRedirect = true;
|
|
|
|
requestSet.AllowAutoRedirect = true;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreResponseCookie.Should().BeFalse();
|
|
|
|
requestSet.StoreResponseCookie.Should().BeFalse();
|
|
|
@ -417,7 +417,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_overwrite_response_cookie()
|
|
|
|
public void should_overwrite_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestSet = new HttpRequest($"http://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
var requestSet = new HttpRequest($"https://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
requestSet.Cookies.Add("my", "oldcookie");
|
|
|
|
requestSet.Cookies.Add("my", "oldcookie");
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
|
requestSet.StoreRequestCookie = false;
|
|
|
@ -425,7 +425,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
|
|
|
|
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
|
|
|
|
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
|
|
|
|
|
|
|
@ -437,7 +437,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_overwrite_temp_response_cookie()
|
|
|
|
public void should_overwrite_temp_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestSet = new HttpRequest($"http://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
var requestSet = new HttpRequest($"https://{_httpBinHost}/cookies/set?my=cookie");
|
|
|
|
requestSet.Cookies.Add("my", "oldcookie");
|
|
|
|
requestSet.Cookies.Add("my", "oldcookie");
|
|
|
|
requestSet.AllowAutoRedirect = true;
|
|
|
|
requestSet.AllowAutoRedirect = true;
|
|
|
|
requestSet.StoreRequestCookie = true;
|
|
|
|
requestSet.StoreRequestCookie = true;
|
|
|
@ -447,7 +447,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
responseSet.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
responseSet.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
|
|
|
|
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
|
|
|
|
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
var responseCookies = Subject.Get<HttpCookieResource>(requestCookies);
|
|
|
|
|
|
|
|
|
|
|
@ -459,7 +459,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_not_delete_response_cookie()
|
|
|
|
public void should_not_delete_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.Cookies.Add("my", "cookie");
|
|
|
|
requestCookies.Cookies.Add("my", "cookie");
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.StoreRequestCookie = true;
|
|
|
|
requestCookies.StoreRequestCookie = true;
|
|
|
@ -468,14 +468,14 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
responseCookies.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
responseCookies.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
|
|
|
|
|
|
|
|
var requestDelete = new HttpRequest($"http://{_httpBinHost}/cookies/delete?my");
|
|
|
|
var requestDelete = new HttpRequest($"https://{_httpBinHost}/cookies/delete?my");
|
|
|
|
requestDelete.AllowAutoRedirect = false;
|
|
|
|
requestDelete.AllowAutoRedirect = false;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreResponseCookie = false;
|
|
|
|
requestDelete.StoreResponseCookie = false;
|
|
|
|
|
|
|
|
|
|
|
|
var responseDelete = Subject.Get(requestDelete);
|
|
|
|
var responseDelete = Subject.Get(requestDelete);
|
|
|
|
|
|
|
|
|
|
|
|
requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.StoreRequestCookie = false;
|
|
|
|
requestCookies.StoreRequestCookie = false;
|
|
|
|
requestCookies.StoreResponseCookie = false;
|
|
|
|
requestCookies.StoreResponseCookie = false;
|
|
|
|
|
|
|
|
|
|
|
@ -489,7 +489,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_delete_response_cookie()
|
|
|
|
public void should_delete_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.Cookies.Add("my", "cookie");
|
|
|
|
requestCookies.Cookies.Add("my", "cookie");
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.StoreRequestCookie = true;
|
|
|
|
requestCookies.StoreRequestCookie = true;
|
|
|
@ -498,14 +498,14 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
responseCookies.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
responseCookies.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
|
|
|
|
|
|
|
|
var requestDelete = new HttpRequest($"http://{_httpBinHost}/cookies/delete?my");
|
|
|
|
var requestDelete = new HttpRequest($"https://{_httpBinHost}/cookies/delete?my");
|
|
|
|
requestDelete.AllowAutoRedirect = false;
|
|
|
|
requestDelete.AllowAutoRedirect = false;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreResponseCookie = true;
|
|
|
|
requestDelete.StoreResponseCookie = true;
|
|
|
|
|
|
|
|
|
|
|
|
var responseDelete = Subject.Get(requestDelete);
|
|
|
|
var responseDelete = Subject.Get(requestDelete);
|
|
|
|
|
|
|
|
|
|
|
|
requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.StoreRequestCookie = false;
|
|
|
|
requestCookies.StoreRequestCookie = false;
|
|
|
|
requestCookies.StoreResponseCookie = false;
|
|
|
|
requestCookies.StoreResponseCookie = false;
|
|
|
|
|
|
|
|
|
|
|
@ -519,7 +519,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_delete_temp_response_cookie()
|
|
|
|
public void should_delete_temp_response_cookie()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
var requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.Cookies.Add("my", "cookie");
|
|
|
|
requestCookies.Cookies.Add("my", "cookie");
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.AllowAutoRedirect = false;
|
|
|
|
requestCookies.StoreRequestCookie = true;
|
|
|
|
requestCookies.StoreRequestCookie = true;
|
|
|
@ -528,7 +528,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
responseCookies.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
responseCookies.Resource.Cookies.Should().HaveCount(1).And.Contain("my", "cookie");
|
|
|
|
|
|
|
|
|
|
|
|
var requestDelete = new HttpRequest($"http://{_httpBinHost}/cookies/delete?my");
|
|
|
|
var requestDelete = new HttpRequest($"https://{_httpBinHost}/cookies/delete?my");
|
|
|
|
requestDelete.AllowAutoRedirect = true;
|
|
|
|
requestDelete.AllowAutoRedirect = true;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreRequestCookie = false;
|
|
|
|
requestDelete.StoreResponseCookie = false;
|
|
|
|
requestDelete.StoreResponseCookie = false;
|
|
|
@ -536,7 +536,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
responseDelete.Resource.Cookies.Should().BeEmpty();
|
|
|
|
responseDelete.Resource.Cookies.Should().BeEmpty();
|
|
|
|
|
|
|
|
|
|
|
|
requestCookies = new HttpRequest($"http://{_httpBinHost}/cookies");
|
|
|
|
requestCookies = new HttpRequest($"https://{_httpBinHost}/cookies");
|
|
|
|
requestCookies.StoreRequestCookie = false;
|
|
|
|
requestCookies.StoreRequestCookie = false;
|
|
|
|
requestCookies.StoreResponseCookie = false;
|
|
|
|
requestCookies.StoreResponseCookie = false;
|
|
|
|
|
|
|
|
|
|
|
@ -548,7 +548,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
[Test]
|
|
|
|
[Test]
|
|
|
|
public void should_throw_on_http429_too_many_requests()
|
|
|
|
public void should_throw_on_http429_too_many_requests()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/status/429");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/status/429");
|
|
|
|
|
|
|
|
|
|
|
|
Assert.Throws<TooManyRequestsException>(() => Subject.Get(request));
|
|
|
|
Assert.Throws<TooManyRequestsException>(() => Subject.Get(request));
|
|
|
|
|
|
|
|
|
|
|
@ -568,7 +568,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
.Setup(v => v.PostResponse(It.IsAny<HttpResponse>()))
|
|
|
|
.Setup(v => v.PostResponse(It.IsAny<HttpResponse>()))
|
|
|
|
.Returns<HttpResponse>(r => r);
|
|
|
|
.Returns<HttpResponse>(r => r);
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
|
|
|
|
|
|
|
|
Subject.Get(request);
|
|
|
|
Subject.Get(request);
|
|
|
|
|
|
|
|
|
|
|
@ -590,7 +590,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// the date is bad in the below - should be 13-Jul-2026
|
|
|
|
// the date is bad in the below - should be 13-Jul-2026
|
|
|
|
string malformedCookie = @"__cfduid=d29e686a9d65800021c66faca0a29b4261436890790; expires=Mon, 13-Jul-26 16:19:50 GMT; path=/; HttpOnly";
|
|
|
|
string malformedCookie = @"__cfduid=d29e686a9d65800021c66faca0a29b4261436890790; expires=Mon, 13-Jul-26 16:19:50 GMT; path=/; HttpOnly";
|
|
|
|
var requestSet = new HttpRequestBuilder($"http://{_httpBinHost}/response-headers")
|
|
|
|
var requestSet = new HttpRequestBuilder($"https://{_httpBinHost}/response-headers")
|
|
|
|
.AddQueryParam("Set-Cookie", malformedCookie)
|
|
|
|
.AddQueryParam("Set-Cookie", malformedCookie)
|
|
|
|
.Build();
|
|
|
|
.Build();
|
|
|
|
|
|
|
|
|
|
|
@ -599,7 +599,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
@ -623,7 +623,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
{
|
|
|
|
{
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
string url = $"http://{_httpBinHost}/response-headers?Set-Cookie={Uri.EscapeUriString(malformedCookie)}";
|
|
|
|
string url = $"https://{_httpBinHost}/response-headers?Set-Cookie={Uri.EscapeUriString(malformedCookie)}";
|
|
|
|
|
|
|
|
|
|
|
|
var requestSet = new HttpRequest(url);
|
|
|
|
var requestSet = new HttpRequest(url);
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
|
requestSet.AllowAutoRedirect = false;
|
|
|
@ -631,7 +631,7 @@ namespace NzbDrone.Common.Test.Http
|
|
|
|
|
|
|
|
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
var responseSet = Subject.Get(requestSet);
|
|
|
|
|
|
|
|
|
|
|
|
var request = new HttpRequest($"http://{_httpBinHost}/get");
|
|
|
|
var request = new HttpRequest($"https://{_httpBinHost}/get");
|
|
|
|
|
|
|
|
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
var response = Subject.Get<HttpBinResource>(request);
|
|
|
|
|
|
|
|
|
|
|
|