コード例 #1
0
        public void OnActionExecuting_AuthenticatedUser_ShouldRedirect(Database db, [Content] DbItem item, [Substitute] ActionExecutingContext filterContext, string url)
        {
            //Arrange
            var siteContext = new FakeSiteContext(new StringDictionary
            {
                {
                    "rootPath", "/sitecore/content"
                },
                {
                    "startItem", item.Name
                }
            }) as SiteContext;

            siteContext.Database = db;
            var urlService = Substitute.For <IGetRedirectUrlService>();

            urlService.GetRedirectUrl(AuthenticationStatus.Authenticated).Returns(url);
            var redirectAuthenticatedAttribute = new RedirectAuthenticatedAttribute(urlService);

            //Act
            using (new SiteContextSwitcher(siteContext))
                using (new Sitecore.Security.Accounts.UserSwitcher(@"extranet\John", true))
                {
                    redirectAuthenticatedAttribute.OnActionExecuting(filterContext);
                }

            //Assert
            filterContext.Result.Should().BeOfType <RedirectResult>();
            ((RedirectResult)filterContext.Result).Url.Should().Be(url);
        }
コード例 #2
0
        public void OnActionExecuting_NotNormalMode_ShouldNotRedirect(FakeSiteContext siteContext, [Substitute] ActionExecutingContext filterContext)
        {
            //Arrange
            typeof(SiteContext).GetField("displayMode", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(siteContext, DisplayMode.Edit);
            var urlService = Substitute.For <IGetRedirectUrlService>();
            var redirectAuthenticatedAttribute = new RedirectAuthenticatedAttribute(urlService);

            //Act
            using (new SiteContextSwitcher(siteContext))
            {
                redirectAuthenticatedAttribute.OnActionExecuting(filterContext);
            }

            //Assert
            filterContext.Result.Should().BeNull();
        }
コード例 #3
0
        public void OnActionExecuting_AuthenticatedUser_ShouldRedirect(Database db, [Content] DbItem item, [Substitute] ActionExecutingContext filterContext, RedirectAuthenticatedAttribute redirectAuthenticatedAttribute)
        {
            //Arrange
            var siteContext = new FakeSiteContext(new StringDictionary
            {
                {
                    "rootPath", "/sitecore/content"
                },
                {
                    "startItem", item.Name
                }
            }) as SiteContext;

            siteContext.Database = db;

            //Act
            using (new SiteContextSwitcher(siteContext))
                using (new Sitecore.Security.Accounts.UserSwitcher(@"extranet\John", true))
                {
                    redirectAuthenticatedAttribute.OnActionExecuting(filterContext);
                }

            //Assert
            filterContext.Result.Should().BeOfType <RedirectResult>();
        }
コード例 #4
0
        public void OnActionExecuting_NotAuthenticatedUser_ShouldNotRedirect(FakeSiteContext siteContext, [Substitute] ActionExecutingContext filterContext, RedirectAuthenticatedAttribute redirectAuthenticatedAttribute)
        {
            //Arrange
            typeof(SiteContext).GetField("displayMode", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(siteContext, DisplayMode.Normal);

            //Act
            using (new SiteContextSwitcher(siteContext))
                using (new Sitecore.Security.Accounts.UserSwitcher(@"extranet\John", false))
                {
                    redirectAuthenticatedAttribute.OnActionExecuting(filterContext);
                }

            //Assert
            filterContext.Result.Should().BeNull();
        }