1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-26 22:46:53 -04:00

New: CORS support on the API (for developing against the API)

This commit is contained in:
Mark McDowall
2014-11-05 16:20:00 -08:00
parent 4665682ea6
commit 3ee58979ec
7 changed files with 121 additions and 4 deletions
@@ -45,7 +45,6 @@ namespace NzbDrone.Integration.Test.Client
request.AddParameter("sortKey", sortKey);
request.AddParameter("sortDir", sortDir);
return Get<PagingResource<TResource>>(request);
}
public TResource Post(TResource body, HttpStatusCode statusCode = HttpStatusCode.Created)
@@ -0,0 +1,57 @@
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Api.Extensions;
using RestSharp;
namespace NzbDrone.Integration.Test
{
[TestFixture]
public class CorsFixture : IntegrationTest
{
private RestRequest BuildRequest()
{
var request = new RestRequest("series");
request.AddHeader(AccessControlHeaders.RequestMethod, "POST");
return request;
}
[Test]
public void should_not_have_allow_headers_in_response_when_not_included_in_the_request()
{
var request = BuildRequest();
var response = RestClient.Get(request);
response.Headers.Should().NotContain(h => h.Name == AccessControlHeaders.AllowHeaders);
}
[Test]
public void should_have_allow_headers_in_response_when_included_in_the_request()
{
var request = BuildRequest();
request.AddHeader(AccessControlHeaders.RequestHeaders, "X-Test");
var response = RestClient.Get(request);
response.Headers.Should().Contain(h => h.Name == AccessControlHeaders.AllowHeaders);
}
[Test]
public void should_have_allow_origin_in_response()
{
var request = BuildRequest();
var response = RestClient.Get(request);
response.Headers.Should().Contain(h => h.Name == AccessControlHeaders.AllowOrigin);
}
[Test]
public void should_have_allow_methods_in_response()
{
var request = BuildRequest();
var response = RestClient.Get(request);
response.Headers.Should().Contain(h => h.Name == AccessControlHeaders.AllowMethods);
}
}
}
@@ -63,7 +63,6 @@ namespace NzbDrone.Integration.Test
}
[TestFixtureSetUp]
//[SetUp]
public void SmokeTestSetup()
{
_runner = new NzbDroneRunner();
@@ -87,6 +86,8 @@ namespace NzbDrone.Integration.Test
private void InitRestClients()
{
RestClient = new RestClient(RootUrl + "api/");
RestClient.AddDefaultHeader("Authentication", _runner.ApiKey);
Series = new SeriesClient(RestClient, _runner.ApiKey);
Releases = new ReleaseClient(RestClient, _runner.ApiKey);
RootFolders = new ClientBase<RootFolderResource>(RestClient, _runner.ApiKey);
@@ -99,7 +100,6 @@ namespace NzbDrone.Integration.Test
}
[TestFixtureTearDown]
//[TearDown]
public void SmokeTestTearDown()
{
_runner.KillAll();
@@ -153,6 +153,5 @@ namespace NzbDrone.Integration.Test
_signalrConnection.Received += json => _signalRReceived.Add(Json.Deserialize<SignalRMessage>(json)); ;
}
}
}
@@ -109,6 +109,7 @@
<Compile Include="Client\ReleaseClient.cs" />
<Compile Include="Client\SeriesClient.cs" />
<Compile Include="CommandIntegerationTests.cs" />
<Compile Include="CorsFixture.cs" />
<Compile Include="EpisodeIntegrationTests.cs" />
<Compile Include="HistoryIntegrationTest.cs" />
<Compile Include="IndexerIntegrationFixture.cs" />