public void CommandResultExtensions_DoesNotApplyCookieWhenNoNameSet() { var cr = new CommandResult() { RequestState = new StoredRequestState( new EntityId("http://idp.example.com"), new Uri("http://sp.example.com/loggedout"), new Saml2Id("id123"), null), SetCookieName = null }; var context = OwinTestHelpers.CreateOwinContext(); var dataProtector = new StubDataProtector(); cr.Apply(context, dataProtector); var setCookieHeader = context.Response.Headers["Set-Cookie"]; var protectedData = HttpRequestData.ConvertBinaryData( StubDataProtector.Protect(cr.GetSerializedRequestState())); setCookieHeader.Should().Be(null); }
public void OwinContextExtensions_ToHttpRequestData_HandlesRelayStateWithoutCookie() { var ctx = OwinTestHelpers.CreateOwinContext(); ctx.Request.QueryString = new QueryString("RelayState", "SomeState"); ctx.Invoking(async c => await c.ToHttpRequestData(null)) .ShouldNotThrow(); }
public async Task OwinContextExtensions_ToHttpRequestData_ApplicationNotInRoot() { var ctx = OwinTestHelpers.CreateOwinContext(); ctx.Request.PathBase = new PathString("/ApplicationPath"); var actual = await ctx.ToHttpRequestData(null); actual.ApplicationUrl.Should().Be(new Uri("http://sp.example.com/ApplicationPath")); }
public async Task AuthServicesUrls_Ctor_FromOwinHttpRequestData_PublicOrigin() { var ctx = OwinTestHelpers.CreateOwinContext(); var options = StubFactory.CreateOptionsPublicOrigin(new Uri("https://my.public.origin:8443/")); var subject = await ctx.ToHttpRequestData(null); var urls = new AuthServicesUrls(subject, options); urls.AssertionConsumerServiceUrl.ShouldBeEquivalentTo("https://my.public.origin:8443/AuthServices/Acs"); urls.SignInUrl.ShouldBeEquivalentTo("https://my.public.origin:8443/AuthServices/SignIn"); }
public void CommandResultExtensions_Apply_Redirect() { string redirectUrl = "http://somewhere.else.example.com?Foo=Bar%20XYZ"; var cr = new CommandResult() { HttpStatusCode = HttpStatusCode.SeeOther, Location = new Uri(redirectUrl) }; var context = OwinTestHelpers.CreateOwinContext(); cr.Apply(context, null); context.Response.StatusCode.Should().Be(303); context.Response.Headers["Location"].Should().Be(redirectUrl); }
public void CommandResultExtensions_Apply_ClearCookie() { var cr = new CommandResult() { ClearCookieName = "CookieName" }; var context = OwinTestHelpers.CreateOwinContext(); var dataProtector = new StubDataProtector(); cr.Apply(context, dataProtector); var setCookieHeader = context.Response.Headers["Set-Cookie"]; var expected = "CookieName=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT"; setCookieHeader.Should().Be(expected); }
public async Task OwinContextExtensions_ToHttpRequestData_ReadsRelayStateCookie() { var ctx = OwinTestHelpers.CreateOwinContext(); ctx.Request.QueryString = new QueryString("RelayState", "SomeState"); var storedRequestState = new StoredRequestState( null, new Uri("http://sp.example.com"), null, null); var cookieData = HttpRequestData.ConvertBinaryData( StubDataProtector.Protect(storedRequestState.Serialize())); ctx.Request.Headers["Cookie"] = $"Kentor.SomeState={cookieData}"; var actual = await ctx.ToHttpRequestData(StubDataProtector.Unprotect); actual.StoredRequestState.ShouldBeEquivalentTo(storedRequestState); }
public async Task OwinContextExtensions_ToHttpRequestData() { var ctx = OwinTestHelpers.CreateOwinContext(); ctx.Request.Body = new MemoryStream(Encoding.UTF8.GetBytes("Input1=Value1&Input2=Value2")); ctx.Request.Method = "POST"; ctx.Request.ContentType = "application/x-www-form-urlencoded"; ctx.Request.Path = new PathString("/somePath"); ctx.Request.QueryString = new QueryString("param=value"); var actual = await ctx.ToHttpRequestData(StubDataProtector.Unprotect); actual.Url.Should().Be(ctx.Request.Uri); actual.Form.Count.Should().Be(2); actual.Form["Input1"].Should().Be("Value1"); actual.Form["Input2"].Should().Be("Value2"); actual.HttpMethod.Should().Be("POST"); actual.ApplicationUrl.Should().Be(new Uri("http://sp.example.com/")); }
public void CommandResultExtensions_Apply_Content() { var cr = new CommandResult() { Content = "Some Content!", ContentType = "application/whatever+text" }; var context = OwinTestHelpers.CreateOwinContext(); cr.Apply(context, null); context.Response.StatusCode.Should().Be(200); context.Response.ContentType.Should().Be("application/whatever+text"); context.Response.Body.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(context.Response.Body)) { var bodyText = reader.ReadToEnd(); bodyText.Should().Be("Some Content!"); } }
public void CommandResultExtensions_Apply_NullCheck_CommandResult() { Action a = () => ((CommandResult)null).Apply(OwinTestHelpers.CreateOwinContext(), null); a.ShouldThrow <ArgumentNullException>().And.ParamName.Should().Be("commandResult"); }