Exemplo n.º 1
0
        public async Task TestReadExistingCookie()
        {
            var cookieOptions = new AnonymousIdCookieOptionsBuilder().Build();

            Dictionary <string, string> cookies = new Dictionary <string, string>();

            cookies.Add(cookieOptions.Name, "QOOUV4vy0gEkAAAANDQ3ZGU5OTUtNTQ4Ny00OTNlLThhM2QtMDQ5ZDUyNmY2NzIw");

            var requestMock = new Mock <HttpRequest>();

            requestMock.Setup(x => x.Cookies).Returns(new RequestCookieCollection(cookies));

            var userMock = new Mock <ClaimsPrincipal>();

            userMock.Setup(x => x.Identity).Returns(new ClaimsIdentity());

            var contextMock = new Mock <HttpContext>();

            contextMock.Setup(x => x.Features).Returns(new FeatureCollection());
            contextMock.Setup(x => x.Request).Returns(requestMock.Object);
            contextMock.Setup(x => x.Response).Returns(new DefaultHttpResponse(new DefaultHttpContext()));
            contextMock.Setup(x => x.User).Returns(userMock.Object);

            var anonymousIdMiddleware = new AnonymousIdMiddleware(nextDelegate: (innerHttpContext) => Task.FromResult(0), cookieOptions: cookieOptions);
            await anonymousIdMiddleware.Invoke(contextMock.Object);

            Assert.NotNull(contextMock.Object.Features.Get <IAnonymousIdFeature>());
            Assert.Equal("447de995-5487-493e-8a3d-049d526f6720", contextMock.Object.Features.Get <IAnonymousIdFeature>().AnonymousId);
        }
Exemplo n.º 2
0
        public async Task TestDeleteExistingNonSecureCookie()
        {
            var cookieOptions = new AnonymousIdCookieOptionsBuilder()
                                .SetCustomCookieRequireSsl(true)
                                .Build();

            Dictionary <string, string> cookies = new Dictionary <string, string>();

            cookies.Add(cookieOptions.Name, "QOOUV4vy0gEkAAAANDQ3ZGU5OTUtNTQ4Ny00OTNlLThhM2QtMDQ5ZDUyNmY2NzIw");

            var requestMock = new Mock <HttpRequest>();

            requestMock.Setup(x => x.IsHttps).Returns(false);
            requestMock.Setup(x => x.Cookies).Returns(new RequestCookieCollection(cookies));

            var userMock = new Mock <ClaimsPrincipal>();

            userMock.Setup(x => x.Identity).Returns(new ClaimsIdentity());

            var contextMock = new Mock <HttpContext>();

            contextMock.Setup(x => x.Features).Returns(new FeatureCollection());
            contextMock.Setup(x => x.Request).Returns(requestMock.Object);
            contextMock.Setup(x => x.Response).Returns(new DefaultHttpResponse(new DefaultHttpContext()));
            contextMock.Setup(x => x.User).Returns(userMock.Object);

            var anonymousIdMiddleware = new AnonymousIdMiddleware(nextDelegate: (innerHttpContext) => Task.FromResult(0), cookieOptions: cookieOptions);
            await anonymousIdMiddleware.Invoke(contextMock.Object);

            Assert.NotNull(contextMock.Object.Features.Get <IAnonymousIdFeature>());
            Assert.Equal(null, contextMock.Object.Features.Get <IAnonymousIdFeature>().AnonymousId);
            Assert.True(string.IsNullOrWhiteSpace(GetCookieValueFromResponse(contextMock.Object.Response, cookieOptions.Name)));
        }
Exemplo n.º 3
0
        public async Task TestAvailableFeature()
        {
            var cookieOptions = new AnonymousIdCookieOptionsBuilder().Build();

            var requestMock = new Mock <HttpRequest>();

            requestMock.Setup(x => x.Cookies).Returns(new RequestCookieCollection());

            var userMock = new Mock <ClaimsPrincipal>();

            userMock.Setup(x => x.Identity).Returns(new ClaimsIdentity());

            var contextMock = new Mock <HttpContext>();

            contextMock.Setup(x => x.Features).Returns(new FeatureCollection());
            contextMock.Setup(x => x.Request).Returns(requestMock.Object);
            contextMock.Setup(x => x.Response).Returns(new DefaultHttpResponse(new DefaultHttpContext()));
            contextMock.Setup(x => x.User).Returns(userMock.Object);

            var anonymousIdMiddleware = new AnonymousIdMiddleware(nextDelegate: (innerHttpContext) => Task.FromResult(0), cookieOptions: cookieOptions);
            await anonymousIdMiddleware.Invoke(contextMock.Object);

            Assert.NotNull(contextMock.Object.Features.Get <IAnonymousIdFeature>());
            Assert.True(!string.IsNullOrWhiteSpace(contextMock.Object.Features.Get <IAnonymousIdFeature>().AnonymousId));
        }