예제 #1
0
        public void ShowErrorDetails_ForNonLocalHost_ReturnsFalse()
        {
            // arrange
            var context = new Mock<ISubtextContext>();
            context.Setup(c => c.HttpContext.Request.IsLocal).Returns(false);
            context.Setup(c => c.User.IsInRole("Admins")).Returns(false);
            var page = new SubtextPage { SubtextContext = context.Object };
            var control = new Error { Page = page };

            // act
            bool result = control.ShowErrorDetails;

            // assert
            Assert.IsFalse(result);
        }
        public void LoadControl_WithControlAndFallbackThrowingHttpException_LoadsErrorControl()
        {
            // arrange
            var containerControl = new Mock<IContainerControl>();
            var errorControl = new Error();
            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(new HttpException());
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/ViewPost.ascx")).Throws(new HttpException());
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns(errorControl);
            var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost") as Error;

            // assert
            Assert.AreSame(errorControl, control);
            Assert.AreEqual("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx", control.Exception.ControlPath);
        }