private static TestableAuthController GetTestableAuthController(
            IOpenIdRelyingParty relyingParty,
            IFormsAuthentication formsAuth,
            CreateUser createUser,
            GetUserByClaimId getUser,
            string providerUrl = @"http:\\testprovider.com")
        {
            HttpContextBase contextMock    = MvcMockHelpers.FakeHttpContext(providerUrl);
            var             authController = new TestableAuthController(relyingParty, formsAuth, createUser, getUser);

            authController.ControllerContext = new ControllerContext(contextMock, new RouteData(), authController);
            authController.InvokeInitialize(authController.ControllerContext.RequestContext);

            // default routes
            var routes = new RouteCollection();

            routes.MapRoute(
                "Default",                    // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = "" } // Parameter defaults
                );
            authController.Url = new UrlHelper(authController.ControllerContext.RequestContext,
                                               routes);

            return(authController);
        }
        public void Should_have_single_singleton_instance_of_IRequestDescription()
        {
            // Arrange
            HttpContextRequestDescription.HttpContextProvider = () => MvcMockHelpers.FakeHttpContext();

            // Assert
            VerifyHasOneTransientOf <IRequestDescription, HttpContextRequestDescription>();
        }
        protected HttpContextBase GetHttpContext(PrincipalStub principal)
        {
            MvcMockContainer container = new MvcMockContainer();
            HttpContextBase  context   = MvcMockHelpers.FakeHttpContext(container);

            container.Context.SetupProperty(x => x.User, principal);

            return(context);
        }
Esempio n. 4
0
        public Mock <ControllerContext> GetControllerContext()
        {
            var httpContext = MvcMockHelpers.FakeHttpContext("~/");
            Mock <ControllerContext> controllerContext = new Mock <ControllerContext>();

            controllerContext.Setup(ctx => ctx.HttpContext).Returns(httpContext);

            return(controllerContext);
        }
Esempio n. 5
0
        public void Logout_DefaultParameters_DoesNotSetTempDataKey()
        {
            TempDataDictionary tempData = new TempDataDictionary();

            _fakeContext = MvcMockHelpers.FakeHttpContext();
            _fakeContext.Request.SetRequestQueryString(new NameValueCollection());

            _sessionTerminator.Logout(_fakeContext.Request, _fakeContext.Response, tempData);

            Assert.Null(tempData[SessionTerminator.SessionTimedOut]);
        }
Esempio n. 6
0
        public void Get_XsrfMethods_ReturnsConditionalFilterProvider()
        {
            foreach (var method in XsrfFilter.XsrfMethods)
            {
                _fakeContext = MvcMockHelpers.FakeHttpContext();
                _fakeContext.Request.SetHttpMethodResult(method);
                _output.WriteLine("HttpMethod => {0}", method);

                var filter = XsrfFilter.Get();

                Assert.IsType <ConditionalFilterProvider>(filter);
            }
        }
Esempio n. 7
0
        private static AccountController GetAccountController()
        {
            IFormsAuthentication     formsAuth          = new MockFormsAuthenticationService();
            MembershipProvider       membershipProvider = new MockMembershipProvider();
            AccountMembershipService membershipService  = new AccountMembershipService(membershipProvider);
            AccountController        controller         = new AccountController(formsAuth, membershipService);

            HttpContextBase contextBase = MvcMockHelpers.FakeHttpContext(); // new MockHttpContext();

            controller.ControllerContext = new ControllerContext(contextBase, new RouteData(), controller);
            controller.Url = new UrlHelper(new RequestContext(contextBase, new RouteData()), new RouteCollection());
            return(controller);
        }
Esempio n. 8
0
        public void Should_have_controllername_and_actionname()
        {
            // Arrange
            HttpContextRequestDescription.HttpContextProvider = () => MvcMockHelpers.FakeHttpContext("~/some-url");
            RouteTable.Routes.Add(TestDataFactory.CreateRoute(null, "ControllerName", "ActionName"));

            // Act
            var requestDescription = new HttpContextRequestDescription();

            // Assert
            Assert.That(requestDescription.AreaName, Is.EqualTo(""));
            Assert.That(requestDescription.ControllerName, Is.EqualTo("ControllerName"));
            Assert.That(requestDescription.ActionName, Is.EqualTo("ActionName"));
        }
Esempio n. 9
0
        public void Logout_HasQueryStringWithValue_SetsTempDataKey()
        {
            TempDataDictionary tempData = new TempDataDictionary();

            _fakeContext = MvcMockHelpers.FakeHttpContext();
            var querystring = new NameValueCollection();

            querystring.Add(SessionTerminatorHelper.ShowClientModalKey, "0");
            _fakeContext.Request.SetRequestQueryString(querystring);

            _sessionTerminator.Logout(_fakeContext.Request, _fakeContext.Response, tempData);

            Assert.True((bool)tempData[SessionTerminator.SessionTimedOut]);
        }
        public void WhenSettingAuthenticationCookieFromTicket_ThenAddsToResponseCookie()
        {
            var cookies      = new HttpCookieCollection();
            var formsAuth    = new DefaultFormsAuthentication();
            var context      = MvcMockHelpers.FakeHttpContext();
            var responseMock = Mock.Get(context.Response);

            responseMock.Setup(r => r.Cookies).Returns(cookies);

            formsAuth.SetAuthCookie(context, new FormsAuthenticationTicket("TestName", false, 55));

            Assert.NotNull(cookies[FormsAuthentication.FormsCookieName]);
            Assert.Equal("TestName",
                         FormsAuthentication.Decrypt(cookies[FormsAuthentication.FormsCookieName].Value).Name);
        }
Esempio n. 11
0
        public void TestInitialize()
        {
            this.helper            = new TestHelpers();
            this.uowData           = this.helper.GetUnitOfWork();
            this.controllerContext = this.helper.GetControllerContext();

            var routes = new RouteCollection();

            Twitter.Application.RouteConfig.RegisterRoutes(routes);
            var helper = new UrlHelper(new RequestContext(MvcMockHelpers.FakeHttpContext(), new RouteData()), routes);

            this.controller     = new UsersController(this.uowData.Object);
            this.controller.Url = helper;
            this.controller.ControllerContext = controllerContext.Object;
        }
Esempio n. 12
0
        public void GetFilter_XsrfMethods_ReturnsValidateAntiForgeryTokenAttribute()
        {
            foreach (var method in XsrfFilter.XsrfMethods)
            {
                _fakeContext = MvcMockHelpers.FakeHttpContext();
                _fakeContext.Request.SetHttpMethodResult(method);
                _output.WriteLine("HttpMethod => {0}", method);

                var postResult = XsrfFilter.GetFilter(_fakeContext.Request, new object[0]);

                Assert.False(_fakeContext.Request.IsAjaxRequest());
                Assert.Equal(method, _fakeContext.Request.HttpMethod);
                Assert.IsType <ValidateAntiForgeryTokenAttribute>(postResult);
            }
        }
Esempio n. 13
0
        public void GetFilter_NonXsrfMethods_ReturnsNull()
        {
            foreach (var method in _nonXsrfMethods)
            {
                _fakeContext = MvcMockHelpers.FakeHttpContext();
                _fakeContext.Request.SetHttpMethodResult(method);
                _output.WriteLine("HttpMethod => {0}", method);

                var postResult = XsrfFilter.GetFilter(_fakeContext.Request, new object[0]);

                Assert.False(_fakeContext.Request.IsAjaxRequest());
                Assert.Equal(method, _fakeContext.Request.HttpMethod);
                Assert.Null(postResult);
            }
        }
Esempio n. 14
0
        protected virtual void SetupControllerForTests(Controller controller, bool identityAuthenticated = false)
        {
            var owinContext = new OwinContext();

            owinContext.Set(UserManager);
            owinContext.Set(SignInManager);

            var context   = new Mock <HttpContextBase>();
            var request   = new Mock <HttpRequestBase>();
            var response  = new Mock <HttpResponseBase>();
            var session   = new Mock <HttpSessionStateBase>();
            var server    = new Mock <HttpServerUtilityBase>();
            var principal = new Mock <IPrincipal>();
            var identity  = new Mock <IIdentity>();

            if (identityAuthenticated)
            {
                principal.Setup(p => p.Identity).Returns(Identity);
            }
            else
            {
                principal.Setup(p => p.Identity).Returns(identity.Object);
            }

            context.Setup(ctx => ctx.Request).Returns(request.Object);
            context.Setup(ctx => ctx.Response).Returns(response.Object);
            context.Setup(ctx => ctx.Session).Returns(session.Object);
            context.Setup(ctx => ctx.Server).Returns(server.Object);
            context.Setup(ctx => ctx.User).Returns(principal.Object);

            request.SetupGet(x => x.ApplicationPath).Returns("/");
            request.SetupGet(x => x.Url).Returns(new Uri(GetControllerPath(), UriKind.Absolute));
            request.SetupGet(x => x.ServerVariables).Returns(new NameValueCollection());

            response.Setup(x => x.ApplyAppPathModifier(It.IsAny <string>())).Returns <string>(x => x);

            context.SetupGet(x => x.Request).Returns(request.Object);
            context.SetupGet(x => x.Response).Returns(response.Object);
            context.SetupGet(x => x.Items).Returns(new Dictionary <object, object>()
            {
                { "owin.Environment", owinContext.Environment }
            });

            var helper = new UrlHelper(new RequestContext(MvcMockHelpers.FakeHttpContext(), new RouteData()), RouteTable.Routes);

            controller.Url = helper;
            controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
        }
        public void Index()
        {
            // Arrange
            HttpContextBase httpContext    = MvcMockHelpers.FakeHttpContext();
            HomeController  controller     = new HomeController();
            RequestContext  requestContext = new RequestContext(httpContext, new RouteData());

            controller.ControllerContext = new ControllerContext(requestContext, controller);
            controller.Url = new UrlHelper(requestContext);

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Esempio n. 16
0
        public void attachmentsroutepath_should_use_attachmentsroutepath_and_prepend_applicationpath()
        {
            // Arrange
            MvcMockContainer container   = new MvcMockContainer();
            HttpContextBase  httpContext = MvcMockHelpers.FakeHttpContext(container);

            container.Request.Setup(x => x.ApplicationPath).Returns("/wiki");

            ApplicationSettings appSettings = new ApplicationSettings(httpContext);

            appSettings.AttachmentsRoutePath = "Folder1/Folder2";

            // Act
            string actualUrlPath = appSettings.AttachmentsUrlPath;

            // Assert
            Assert.That(actualUrlPath, Is.EqualTo(@"/wiki/Folder1/Folder2"));
        }
Esempio n. 17
0
        public void GetFilter_XsrfMethodsIsAjaxWithIgnoreAttribute_ReturnsNull()
        {
            foreach (var method in XsrfFilter.XsrfMethods)
            {
                _fakeContext = MvcMockHelpers.FakeHttpContext();
                _fakeContext.Request.SetHttpMethodResult(method);
                _fakeContext.Request.SetAjaxHeaders();
                _output.WriteLine("HttpMethod => {0}", method);

                var postResult = XsrfFilter.GetFilter(
                    _fakeContext.Request,
                    new object[] { new IgnoreXsrfFilterAttribute() }
                    );

                Assert.True(_fakeContext.Request.IsAjaxRequest());
                Assert.Equal(method, _fakeContext.Request.HttpMethod);
                Assert.Null(postResult);
            }
        }
Esempio n. 18
0
        private static ControllerContext RetrieveTestControllerContext(bool isMobileDevice, string browser)
        {
            var fakeHttpContext = MvcMockHelpers.FakeHttpContext();

            var httpBrowserCapabilities = new Mock <HttpBrowserCapabilitiesBase>();

            httpBrowserCapabilities.Setup(p => p.IsMobileDevice)
            .Returns(isMobileDevice);
            httpBrowserCapabilities.Setup(p => p.Browser)
            .Returns(browser);
            MvcMockHelpers.SetHttpBrowserCapabilities(fakeHttpContext.Request, httpBrowserCapabilities.Object);

            var fakeController = new Mock <ControllerBase>();
            var testRouteData  = new RouteData();

            testRouteData.Values.Add("controller", "TestController");

            return(new ControllerContext(fakeHttpContext, testRouteData, fakeController.Object));
        }
        public void WhenSettingAuthenticationCookieFromTicket_ThenSetsExpiryFromFormsAuthenticationTimeoutValue()
        {
            var cookies      = new HttpCookieCollection();
            var formsAuth    = new DefaultFormsAuthentication();
            var context      = MvcMockHelpers.FakeHttpContext();
            var responseMock = Mock.Get(context.Response);

            responseMock.Setup(r => r.Cookies).Returns(cookies);

            formsAuth.SetAuthCookie(context, new FormsAuthenticationTicket("TestName", false, 55));

            var cookie       = cookies[FormsAuthentication.FormsCookieName];
            var now          = DateTime.Now;
            var formsTimeout = FormsAuthentication.Timeout;

            // assumes test can run +/- 1 minute
            Assert.True(cookie.Expires >= now.AddMinutes(formsTimeout.Minutes - 1));
            Assert.True(cookie.Expires <= now.AddMinutes(formsTimeout.Minutes + 1));
        }
Esempio n. 20
0
        public void attachmentsdirectorypath_should_map_attachmentsfolder_and_end_with_slash()
        {
            // Arrange
            string attachmentsFolder = @"~/myfolder";

            MvcMockContainer container   = new MvcMockContainer();
            HttpContextBase  httpContext = MvcMockHelpers.FakeHttpContext(container);

            container.ServerUtility.Setup(x => x.MapPath(attachmentsFolder)).Returns(@"c:\inetpub\myfolder");

            ApplicationSettings appSettings = new ApplicationSettings(httpContext);

            appSettings.AttachmentsFolder = attachmentsFolder;

            // Act
            string actualPath = appSettings.AttachmentsDirectoryPath;

            // Assert
            Assert.That(actualPath, Is.EqualTo(@"c:\inetpub\myfolder\"));
        }
Esempio n. 21
0
        private ResultExecutedContext CreateContext(WikiController wikiController)
        {
            // HTTP Context
            ControllerContext controllerContext = new Mock <ControllerContext>().Object;
            MvcMockContainer  container         = new MvcMockContainer();
            HttpContextBase   context           = MvcMockHelpers.FakeHttpContext(container);

            controllerContext.HttpContext = context;

            // ResultExecutedContext
            ActionResult result    = new ViewResult();
            Exception    exception = new Exception();
            bool         cancelled = true;

            ResultExecutedContext filterContext = new ResultExecutedContext(controllerContext, result, cancelled, exception);

            filterContext.Controller = wikiController;
            filterContext.RouteData.Values.Add("id", 1);
            filterContext.HttpContext = context;

            return(filterContext);
        }