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);
        }
Exemple #2
0
        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"] = $"{StoredRequestState.CookieNameBase}SomeState={cookieData}";

            var actual = await ctx.ToHttpRequestData(StubDataProtector.Unprotect);

            actual.StoredRequestState.ShouldBeEquivalentTo(storedRequestState);
        }
Exemple #3
0
        public void CommandResultExtensions_Apply_ClearCookie()
        {
            var cr = new CommandResult()
            {
                ClearCookieName = "CookieName"
            };

            var context           = OwinTestHelpers.CreateOwinContext();
            var dataProtector     = new StubDataProtector();
            var mockCookieManager = Substitute.For <ICookieManager>();

            cr.Apply(context, dataProtector, mockCookieManager, true);

            mockCookieManager.Received().DeleteCookie(
                context,
                "CookieName",
                Arg.Is <CookieOptions>(c => c.Path == "/" && !c.Expires.HasValue)
                );
        }
Exemple #4
0
        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 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 cookieName = $"{StoredRequestState.CookieNameBase}SomeState";
            var cookieData = HttpRequestData.ConvertBinaryData(
                StubDataProtector.Protect(storedRequestState.Serialize()));

            var cookieManager = Substitute.For <ICookieManager>();

            cookieManager.GetRequestCookie(ctx, cookieName).Returns(cookieData);

            var actual = await ctx.ToHttpRequestData(cookieManager, StubDataProtector.Unprotect);

            actual.StoredRequestState.Should().BeEquivalentTo(storedRequestState);
        }
        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.Should().Throw <ArgumentNullException>().And.ParamName.Should().Be("commandResult");
        }