a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
65 lines
2.0 KiB
C#
65 lines
2.0 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
|
|
|
|
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using Microsoft.TestCommon;
|
|
using Xunit;
|
|
using Xunit.Extensions;
|
|
|
|
namespace System.Web.Http.PartialTrust
|
|
{
|
|
public class BasicScenarioTest : MarshalByRefObject
|
|
{
|
|
[Fact]
|
|
public void BasicSelfHostedEchoControllerWorks()
|
|
{
|
|
ScenarioHelper.RunTest(
|
|
"Echo",
|
|
"/{s}",
|
|
new HttpRequestMessage(HttpMethod.Post, "http://localhost/Echo/foo"),
|
|
(response) =>
|
|
{
|
|
Assert.DoesNotThrow(() => response.EnsureSuccessStatusCode());
|
|
Assert.Equal("foo", response.Content.ReadAsAsync<string>().Result);
|
|
}
|
|
);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("application/json")]
|
|
[InlineData("text/xml")]
|
|
public void SimpleConNegWorks(string mediaType)
|
|
{
|
|
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Echo/ContentNegotiatedEcho/foo");
|
|
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(mediaType));
|
|
|
|
ScenarioHelper.RunTest(
|
|
"Echo",
|
|
"/{action}/{s}",
|
|
request,
|
|
(response) =>
|
|
{
|
|
Assert.DoesNotThrow(() => response.EnsureSuccessStatusCode());
|
|
Assert.Equal(mediaType, response.Content.Headers.ContentType.MediaType);
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
[RunWith(typeof(PartialTrustRunner))]
|
|
public class PartialTrustBasicScenarioTest : BasicScenarioTest { }
|
|
|
|
public class EchoController : ApiController
|
|
{
|
|
public HttpResponseMessage Get(string s)
|
|
{
|
|
return new HttpResponseMessage() { Content = new StringContent(s) };
|
|
}
|
|
|
|
public string ContentNegotiatedEcho(string s)
|
|
{
|
|
return s;
|
|
}
|
|
}
|
|
}
|