public void CopyConstructorSetsProperties()
        {
            // Arrange
            Mock <HttpContextBase> httpContext = new Mock <HttpContextBase>();

            httpContext.Setup(c => c.Items).Returns(new Hashtable());

            RequestContext requestContext = new RequestContext(httpContext.Object, new RouteData());
            Controller     controller     = new Mock <Controller>().Object;
            var            displayMode    = new DefaultDisplayMode("test");

            ControllerContext innerControllerContext = new ControllerContext(requestContext, controller);

            innerControllerContext.DisplayMode = displayMode;

            // Act
            ControllerContext outerControllerContext = new SubclassedControllerContext(innerControllerContext);

            // Assert
            Assert.Equal(requestContext, outerControllerContext.RequestContext);
            Assert.Equal(controller, outerControllerContext.Controller);

            // We don't actually set DisplayMode but verify it is identical to the inner controller context.
            Assert.Equal(displayMode, outerControllerContext.DisplayMode);
        }
        public void DisplayModeDelegatesToHttpContext()
        {
            // Arrange
            IDisplayMode           testDisplayMode = new DefaultDisplayMode("test");
            Mock <HttpContextBase> httpContext     = new Mock <HttpContextBase>();

            httpContext.Setup(c => c.Items).Returns(new Hashtable());
            Controller        controller        = new Mock <Controller>().Object;
            ControllerContext controllerContext = new ControllerContext(
                httpContext.Object,
                new RouteData(),
                controller
                );
            ControllerContext controllerContextWithIdenticalContext = new ControllerContext(
                httpContext.Object,
                new RouteData(),
                controller
                );

            // Act
            controllerContext.DisplayMode = testDisplayMode;

            // Assert
            Assert.Same(testDisplayMode, controllerContext.DisplayMode);
            Assert.Same(testDisplayMode, controllerContextWithIdenticalContext.DisplayMode);
        }
        /// <summary>
        /// 注册设备模式.
        /// </summary>
        /// <param name="displayModes"></param>
        public static void RegisterDisplayModes(IList <IDisplayMode> displayModes)
        {
            // 默认的 桌面 模式, 没有额外的附加.
            var modeDesktop = new DefaultDisplayMode("")
            {
                ContextCondition = (c => c.Request.IsDesktop())
            };
            // 手机模式, 额外附加 .mobile.
            var modeSmartphone = new DefaultDisplayMode("mobile")
            {
                ContextCondition = (c => c.Request.IsSmartphone())
            };
            // 平板电脑模式, 额外附加 .tablet.
            var modeTablet = new DefaultDisplayMode("tablet")
            {
                ContextCondition = (c => c.Request.IsTablet())
            };

            displayModes.Clear();

            // 检查顺序,先判断是不是平板, 然后再判断是不是手机, 最后判断是不是桌面
            displayModes.Add(modeTablet);
            displayModes.Add(modeSmartphone);
            displayModes.Add(modeDesktop);
        }
        public void DefaultDisplayModeSetSuffixAsId()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act & Assert
            Assert.Equal("foo", displayMode.DisplayModeId);
        }
Exemple #5
0
        public void DefaultDisplayModeSetSuffixAsId()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act & Assert
            Assert.Equal("foo", displayMode.DisplayModeId);
        }
Exemple #6
0
 public void Initialize(InitializationEngine context)
 {
     var mobileChannelDisplayMode = new DefaultDisplayMode("mobile")
     {
         ContextCondition = IsMobileDisplayModeActive
     };
     DisplayModeProvider.Instance.Modes.Insert(0, mobileChannelDisplayMode);
 }
        public void Initialize(InitializationEngine context)
        {
            var staticWebChannelDisplayMode = new DefaultDisplayMode(StaticWebChannel.Name)
            {
                ContextCondition = IsStaticWebDisplayModeActive
            };

            DisplayModeProvider.Instance.Modes.Insert(0, staticWebChannelDisplayMode);
        }
        public void DisplayModePropertyWithNullContext()
        {
            // Arrange
            var context = new Mock<HttpContextBase>();
            var displayMode = new DefaultDisplayMode("test");
            var webPageRenderingBase = new Mock<WebPageRenderingBase>() { CallBase = true };

            // Act & Assert
            Assert.Null(webPageRenderingBase.Object.DisplayMode);
        }
Exemple #9
0
        public void GetDisplayInfoSuffixesPathWithNoExtension()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz", virtualPath => true);

            // Assert
            Assert.Equal("/bar/baz.foo", info.FilePath);
        }
Exemple #10
0
        public void GetDisplayInfoSuffixesPathWithEmptyVirtualPath()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, String.Empty, virtualPath => true);

            // Assert
            Assert.Equal(String.Empty, info.FilePath);
        }
Exemple #11
0
        public void GetDisplayInfoReturnsNullIfPathDoesNotExist()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz", virtualPath => false);

            // Assert
            Assert.Null(info);
        }
        public void GetDisplayInfoInsertsSuffixBeforeLastSectionOfExtension()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz.txt.aspx", virtualPath => true);

            // Assert
            Assert.Equal("/bar/baz.txt.foo.aspx", info.FilePath);
        }
Exemple #13
0
        public void GetDisplayInfoInsertsSuffixBeforeLastSectionOfExtension()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz.txt.aspx", virtualPath => true);

            // Assert
            Assert.Equal("/bar/baz.txt.foo.aspx", info.FilePath);
        }
Exemple #14
0
        public void GetDisplayInfoWithNullVirtualPath()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, virtualPath: null, virtualPathExists: virtualPath => true);

            // Assert
            Assert.Null(info);
        }
Exemple #15
0
        public static void RegisterDisplayModes(IList <IDisplayMode> dms)
        {
            //HttpContext.Current.Request.UserAgent;
            DefaultDisplayMode ddm = new DefaultDisplayMode("Smartphone");

            dms.Add(ddm);

            //HttpContext.Current.Request.UserAgent;
            DefaultDisplayMode ddm2 = new DefaultDisplayMode("Tablet");

            dms.Add(ddm2);
        }
Exemple #16
0
        public void DefaultDisplayModeWithNullSuffix()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode(null);

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz.aspx", virtualPath => true);

            // Assert
            Assert.Equal(String.Empty, displayMode.DisplayModeId);
            Assert.Equal("/bar/baz.aspx", info.FilePath);
        }
        public void GetDisplayInfoInsertsSuffixIntoVirtualPathThatExists()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz.aspx", virtualPath => true);

            // Assert
            Assert.IsType<DefaultDisplayMode>(info.DisplayMode);
            Assert.Equal("/bar/baz.foo.aspx", info.FilePath);
        }
Exemple #18
0
        public void GetDisplayInfoInsertsSuffixIntoVirtualPathThatExists()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock <HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz.aspx", virtualPath => true);

            // Assert
            Assert.IsType <DefaultDisplayMode>(info.DisplayMode);
            Assert.Equal("/bar/baz.foo.aspx", info.FilePath);
        }
        public void DefaultDisplayModeWithEmptySuffix()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode();

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz.aspx", virtualPath => true);

            // Assert
            Assert.Equal(String.Empty, displayMode.DisplayModeId);
            Assert.Equal("/bar/baz.aspx", info.FilePath);
        }
Exemple #20
0
        public void DisplayModePropertyWithNullContext()
        {
            // Arrange
            var context              = new Mock <HttpContextBase>();
            var displayMode          = new DefaultDisplayMode("test");
            var webPageRenderingBase = new Mock <WebPageRenderingBase>()
            {
                CallBase = true
            };

            // Act & Assert
            Assert.Null(webPageRenderingBase.Object.DisplayMode);
        }
        //The next method is used to inicialize the recognition of iphone for this Application.
        protected void InitializeDisplayModeProviders()
        {
            var phone = new DefaultDisplayMode("Phone")
            {
                //ContextCondition = ctx => ctx.GetOverriddenUserAgent() != null &&
                //    (ctx.GetOverriddenUserAgent().Contains("iPhone") ||
                //    ctx.GetOverriddenUserAgent().Contains("GT-I"))
                //user agens for iphone and samsung galaxies
                ContextCondition = ctx => ctx.Request.Browser.IsMobileDevice &&
                                   !(ctx.GetOverriddenUserAgent().Contains("iPad"))
            };

            DisplayModeProvider.Instance.Modes.Insert(0, phone);
        }
Exemple #22
0
        protected void InitializeDisplayModeProviders()
        {
            var phone = new DefaultDisplayMode("Phone")
            {
                ContextCondition = ctx => ctx.GetOverriddenUserAgent() != null && ctx.GetOverriddenUserAgent().Contains("SM")
            };

            var tablet = new DefaultDisplayMode("Tablet")
            {
                ContextCondition = ctx => ctx.GetOverriddenUserAgent() != null && ctx.GetOverriddenUserAgent().Contains("iPad")
            };

            DisplayModeProvider.Instance.Modes.Insert(0, phone);
            DisplayModeProvider.Instance.Modes.Insert(1, tablet);
        }
        protected void Application_Start()
        {
            log4net.Config.XmlConfigurator.Configure();

            System.Func <HttpContextBase, bool> contextCheckDelegate = contextCheck;
            DefaultDisplayMode mobileMode = new DefaultDisplayMode("Mobile");

            mobileMode.ContextCondition = contextCheckDelegate;
            DisplayModeProvider.Instance.Modes.Add(mobileMode);

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            //BundleMobileConfig.RegisterBundles(BundleTable.Bundles);
        }
Exemple #24
0
        protected void Application_Start()
        {
            Func <HttpContextBase, bool> contextCheckDelegate = ContextCheck;
            var mobileMode = new DefaultDisplayMode("Mobile")
            {
                ContextCondition = contextCheckDelegate
            };

            DisplayModeProvider.Instance.Modes.Add(mobileMode);
            AreaRegistration.RegisterAllAreas();

            //WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            GlobalConfig.RegisterGlobalConfig();
        }
Exemple #25
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteTable.Routes.MapRoute(
                "arabam_default",
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional });

            DisplayModeProvider.Instance.Modes.Clear();
            var mobile = new DefaultDisplayMode("Mobile")
            {
                ContextCondition = context => context.Request.Browser.IsMobileDevice
            };

            DisplayModeProvider.Instance.Modes.Add(mobile);
            DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode(""));
        }
        public static void RegisterDisplayModes()
        {
            var nexus7DisplayMode = new DefaultDisplayMode("nexus7")
            {
                ContextCondition = (context =>
                                    context
                                    .GetOverriddenUserAgent()
                                    .IndexOf(
                                        "Nexus 7",
                                        StringComparison
                                        .OrdinalIgnoreCase
                                        ) >= 0)
            };

            DisplayModeProvider
            .Instance
            .Modes
            .Insert(0, nexus7DisplayMode);
        }
Exemple #27
0
        public static void RegisterModes(IList <IDisplayMode> displayModes)
        {
            var modeDesktop = new DefaultDisplayMode("")
            {
                ContextCondition = (c => c.Request.IsDesktop())
            };
            var modeTablet = new DefaultDisplayMode("tablet")
            {
                ContextCondition = (c => c.Request.IsTablet())
            };
            var modeLegacy = new DefaultDisplayMode("legacy")
            {
                ContextCondition = (c => c.Request.IsLegacy())
            };

            displayModes.Clear();
            displayModes.Add(modeTablet);
            displayModes.Add(modeLegacy);
            displayModes.Add(modeDesktop);
        }
        public void GetDisplayInfoWithNullVirtualPath()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, virtualPath: null, virtualPathExists: virtualPath => true);

            // Assert
            Assert.Null(info);
        }
        public void GetDisplayInfoReturnsNullIfPathDoesNotExist()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz", virtualPath => false);

            // Assert
            Assert.Null(info);
        }
        public void GetDisplayInfoSuffixesPathWithNoExtension()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, "/bar/baz", virtualPath => true);

            // Assert
            Assert.Equal("/bar/baz.foo", info.FilePath);
        }
        public void GetDisplayInfoSuffixesPathWithEmptyVirtualPath()
        {
            // Arrange
            DefaultDisplayMode displayMode = new DefaultDisplayMode("foo");

            // Act
            DisplayInfo info = displayMode.GetDisplayInfo(new Mock<HttpContextBase>(MockBehavior.Strict).Object, String.Empty, virtualPath => true);

            // Assert
            Assert.Equal(String.Empty, info.FilePath);
        }