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); }
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))); }
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); }
public void TestMaximumTimeout() { CookieBuilder options = new AnonymousIdCookieOptionsBuilder() .SetCustomCookieExpiration(int.MaxValue) .Build(); Assert.Equal(60 * 60 * 24 * 365 * 2, options.Expiration.Value.TotalSeconds); }
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); }
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); }
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); }