Fixed third-party clients calling api without Accept header

This commit is contained in:
Taloth Saldono 2019-09-01 15:58:01 +02:00
parent 5c3ac79043
commit 53d7ef4014
2 changed files with 55 additions and 1 deletions

View File

@ -0,0 +1,51 @@
using System.Net;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Common.Extensions;
using NzbDrone.Integration.Test.Client;
using RestSharp;
namespace NzbDrone.Integration.Test
{
[TestFixture]
public class GenericApiFixture : IntegrationTest
{
[TestCase("application/json")]
[TestCase("text/html, application/json")]
[TestCase("application/xml, application/json")]
[TestCase("text/html, */*")]
[TestCase("*/*")]
[TestCase("")]
public void should_get_json_with_accept_header(string header)
{
var request = new RestRequest("system/status")
{
RequestFormat = DataFormat.None
};
request.AddHeader("Accept", header);
var response = RestClient.Execute(request);
response.StatusCode.Should().Be(HttpStatusCode.OK);
response.ContentType.Should().Be("application/json; charset=utf-8");
}
[TestCase("application/xml")]
[TestCase("text/html")]
[TestCase("application/junk")]
public void should_get_unacceptable_with_accept_header(string header)
{
var request = new RestRequest("system/status")
{
RequestFormat = DataFormat.None
};
request.AddHeader("Accept", header);
var response = RestClient.Execute(request);
response.StatusCode.Should().Be(HttpStatusCode.NotAcceptable);
}
}
}

View File

@ -57,7 +57,10 @@ namespace Sonarr.Http
get
{
// We don't support Xml Serialization atm
return NancyInternalConfiguration.WithOverrides(x => x.ResponseProcessors.Remove(typeof(XmlProcessor)));
return NancyInternalConfiguration.WithOverrides(x => {
x.ResponseProcessors.Remove(typeof(ViewProcessor));
x.ResponseProcessors.Remove(typeof(XmlProcessor));
});
}
}