Ejemplo 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);
        }
Ejemplo 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)));
        }
Ejemplo 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));
        }
        public void TestMinimumTimeout()
        {
            AnonymousIdCookieOptions options = new AnonymousIdCookieOptionsBuilder()
                                               .SetCustomCookieTimeout(0)
                                               .Build();

            Assert.Equal(1, options.Timeout);
        }
        public void TestMaximumTimeout()
        {
            AnonymousIdCookieOptions options = new AnonymousIdCookieOptionsBuilder()
                                               .SetCustomCookieTimeout(2000000000)
                                               .Build();

            Assert.Equal(60 * 24 * 365 * 2, options.Timeout);
        }
Ejemplo n.º 6
0
        public void TestMaximumTimeout()
        {
            CookieBuilder options = new AnonymousIdCookieOptionsBuilder()
                                    .SetCustomCookieExpiration(int.MaxValue)
                                    .Build();

            Assert.Equal(60 * 60 * 24 * 365 * 2, options.Expiration.Value.TotalSeconds);
        }
Ejemplo n.º 7
0
        public void TestMinimumTimeout()
        {
            CookieBuilder options = new AnonymousIdCookieOptionsBuilder()
                                    .SetCustomCookieExpiration(0)
                                    .Build();

            Assert.Equal(1, options.Expiration.Value.TotalSeconds);
        }
        public void TestDefaultValues()
        {
            AnonymousIdCookieOptions options = new AnonymousIdCookieOptionsBuilder().Build();

            Assert.Equal(options.Name, ".ASPXANONYMOUS");
            Assert.Equal(options.Path, "/");
            Assert.Equal(options.Timeout, 100000);
            Assert.Equal(options.Domain, null);
            Assert.Equal(options.Secure, false);
        }
Ejemplo n.º 9
0
        public void TestDefaultValues()
        {
            CookieBuilder options = new AnonymousIdCookieOptionsBuilder().Build();

            Assert.Equal(options.Name, ".ASPXANONYMOUS");
            Assert.Equal(options.Path, "/");
            Assert.Equal(options.Expiration, TimeSpan.FromSeconds(100000));
            Assert.Equal(options.Domain, null);
            Assert.Equal(options.SecurePolicy, CookieSecurePolicy.SameAsRequest);
        }
        public void TestCustomValues()
        {
            AnonymousIdCookieOptions options = new AnonymousIdCookieOptionsBuilder()
                                               .SetCustomCookieName("CUSTOMCOOKIENAME")
                                               .SetCustomCookiePath("/path")
                                               .SetCustomCookieTimeout(1000000)
                                               .SetCustomCookieDomain("www.example.com")
                                               .SetCustomCookieRequireSsl(true)
                                               .Build();

            Assert.Equal("CUSTOMCOOKIENAME", options.Name);
            Assert.Equal("/path", options.Path);
            Assert.Equal(1000000, options.Timeout);
            Assert.Equal("www.example.com", options.Domain);
            Assert.Equal(true, options.Secure);
        }
Ejemplo n.º 11
0
        public void TestCustomValues()
        {
            CookieBuilder options = new AnonymousIdCookieOptionsBuilder()
                                    .SetCustomCookieName("CUSTOMCOOKIENAME")
                                    .SetCustomCookiePath("/path")
                                    .SetCustomCookieExpiration(1000000)
                                    .SetCustomCookieDomain("www.example.com")
                                    .SetCustomCookieSecurePolicy(CookieSecurePolicy.Always)
                                    .Build();

            Assert.Equal("CUSTOMCOOKIENAME", options.Name);
            Assert.Equal("/path", options.Path);
            Assert.Equal(1000000, options.Expiration.Value.TotalSeconds);
            Assert.Equal("www.example.com", options.Domain);
            Assert.Equal(CookieSecurePolicy.Always, options.SecurePolicy);
        }