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)); }