示例#1
0
 public void CreateController_WithNullContext_ThrowsException()
 {
     SystemManager.RunWithHttpContext(null, () =>
     {
         var layoutTemplateBuilder = new LayoutRenderer();
         layoutTemplateBuilder.CreateController();
     });
 }
        public void CreateController_WithDummyContext_CreatesControllerInstance()
        {
            // Arrange
            var layoutTemplateBuilder = new LayoutRenderer();

            // Act
            Controller dummyController = null;
            SystemManager.RunWithHttpContext(this.context, () => { dummyController = layoutTemplateBuilder.CreateController(); });

            // Assert
            this.AssertControllerHasValidContext(dummyController);
            Assert.AreEqual(dummyController.ControllerContext.RouteData.Values["controller"].ToString(), "generic", "The controller name is not added in the RouteData collection.");
        }
        /// <summary>
        /// Creates a cache dependency based on the specified virtual paths.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="virtualPath">The path to the primary virtual resource.</param>
        /// <returns>
        /// A <see cref="T:System.Web.Caching.CacheDependency"/> object for the specified virtual resources.
        /// </returns>
        public CacheDependency GetCacheDependency(PathDefinition definition, string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
        {
            virtualPath = this.virtualPathBuilder.RemoveParams(virtualPath);
            virtualPath = VirtualPathUtility.ToAppRelative(virtualPath);

            var layoutVirtualPathBuilder = new LayoutVirtualPathBuilder();
            string viewName = layoutVirtualPathBuilder.GetLayoutName(definition, virtualPath);
            var layoutTemplateBuilder = new LayoutRenderer();

            if (string.IsNullOrEmpty(viewName))
                return null;

            var viewPath = layoutTemplateBuilder.LayoutViewPath(viewName);
            return HostingEnvironment.VirtualPathProvider.GetCacheDependency(viewPath, virtualPathDependencies, utcStart);
        }
        /// <summary>
        /// Determines whether a file with the specified virtual path exists.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="virtualPath">The virtual path to check.</param>
        public virtual bool Exists(PathDefinition definition, string virtualPath)
        {
            virtualPath = VirtualPathUtility.ToAppRelative(virtualPath);

            var vpBuilder = new LayoutVirtualPathBuilder();
            string viewName = vpBuilder.GetLayoutName(definition, virtualPath);
            var layoutTemplateBuilder = new LayoutRenderer();

            if (string.IsNullOrEmpty(viewName))
                return false;

            if (virtualPath.StartsWith(string.Format("~/{0}", LayoutVirtualFileResolver.ResolverPath)))
                return layoutTemplateBuilder.LayoutExists(viewName);
            else
                return false;
        }
        /// <summary>
        /// Determines whether a file with the specified virtual path exists.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="virtualPath">The virtual path to check.</param>
        public virtual bool Exists(PathDefinition definition, string virtualPath)
        {
            virtualPath = this.virtualPathBuilder.RemoveParams(virtualPath);
            virtualPath = VirtualPathUtility.ToAppRelative(virtualPath);

            var layoutVirtualPathBuilder = new LayoutVirtualPathBuilder();
            string viewName = layoutVirtualPathBuilder.GetLayoutName(definition, virtualPath);
            var layoutTemplateBuilder = new LayoutRenderer();

            if (string.IsNullOrEmpty(viewName))
                return false;

            if (virtualPath.StartsWith(string.Format(System.Globalization.CultureInfo.InvariantCulture, "~/{0}", LayoutVirtualFileResolver.ResolverPath), StringComparison.Ordinal))
                return layoutTemplateBuilder.LayoutExists(viewName);
            else
                return false;
        }
示例#6
0
        /// <summary>
        /// Creates a cache dependency based on the specified virtual paths.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="virtualPath">The path to the primary virtual resource.</param>
        /// <returns>
        /// A <see cref="T:System.Web.Caching.CacheDependency"/> object for the specified virtual resources.
        /// </returns>
        public CacheDependency GetCacheDependency(PathDefinition definition, string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
        {
            virtualPath = this.virtualPathBuilder.RemoveParams(virtualPath);
            virtualPath = VirtualPathUtility.ToAppRelative(virtualPath);

            var    layoutVirtualPathBuilder = new LayoutVirtualPathBuilder();
            string viewName = layoutVirtualPathBuilder.GetLayoutName(definition, virtualPath);
            var    layoutTemplateBuilder = new LayoutRenderer();

            if (string.IsNullOrEmpty(viewName))
            {
                return(null);
            }

            var viewPath = layoutTemplateBuilder.LayoutViewPath(viewName);

            return(HostingEnvironment.VirtualPathProvider.GetCacheDependency(viewPath, virtualPathDependencies, utcStart));
        }
        /// <summary>
        /// Determines whether a file with the specified virtual path exists.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="virtualPath">The virtual path to check.</param>
        public virtual bool Exists(PathDefinition definition, string virtualPath)
        {
            virtualPath = VirtualPathUtility.ToAppRelative(virtualPath);

            var    vpBuilder             = new LayoutVirtualPathBuilder();
            string viewName              = vpBuilder.GetLayoutName(definition, virtualPath);
            var    layoutTemplateBuilder = new LayoutRenderer();

            if (string.IsNullOrEmpty(viewName))
            {
                return(false);
            }

            if (virtualPath.StartsWith(string.Format("~/{0}", LayoutVirtualFileResolver.ResolverPath)))
            {
                return(layoutTemplateBuilder.LayoutExists(viewName));
            }
            else
            {
                return(false);
            }
        }
示例#8
0
        /// <summary>
        /// Determines whether a file with the specified virtual path exists.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="virtualPath">The virtual path to check.</param>
        public virtual bool Exists(PathDefinition definition, string virtualPath)
        {
            virtualPath = this.virtualPathBuilder.RemoveParams(virtualPath);
            virtualPath = VirtualPathUtility.ToAppRelative(virtualPath);

            var    layoutVirtualPathBuilder = new LayoutVirtualPathBuilder();
            string viewName = layoutVirtualPathBuilder.GetLayoutName(definition, virtualPath);
            var    layoutTemplateBuilder = new LayoutRenderer();

            if (string.IsNullOrEmpty(viewName))
            {
                return(false);
            }

            if (virtualPath.StartsWith(string.Format(System.Globalization.CultureInfo.InvariantCulture, "~/{0}", LayoutVirtualFileResolver.ResolverPath), StringComparison.Ordinal))
            {
                return(layoutTemplateBuilder.LayoutExists(viewName));
            }
            else
            {
                return(false);
            }
        }
示例#9
0
        public void CreateController_WithDummyContext_CreatesControllerInstance()
        {
            var context = new HttpContextWrapper(new HttpContext(
               new HttpRequest(null, "http://tempuri.org", null),
               new HttpResponse(null)));
            context.Items["CurrentResourcePackage"] = "test";

            var layoutTemplateBuilder = new LayoutRenderer();

            Controller dummyController = null;
            SystemManager.RunWithHttpContext(context, () =>
            {
                dummyController = layoutTemplateBuilder.CreateController();
            });

            Assert.IsNotNull(dummyController);
            Assert.IsTrue(dummyController != null);
            Assert.IsTrue(dummyController.ControllerContext != null);
            Assert.IsTrue(dummyController.ControllerContext.RouteData != null);
            Assert.IsTrue(dummyController.ControllerContext.RouteData.Values != null);
            Assert.IsTrue(dummyController.ControllerContext.RouteData.Values.ContainsKey("controller"));
            Assert.IsTrue(dummyController.ControllerContext.RouteData.Values["controller"] != null);
            Assert.AreEqual<string>(dummyController.ControllerContext.RouteData.Values["controller"].ToString(), "generic");
        }
示例#10
0
        private string RenderLayout(string pageTemplateName, bool placeholdersOnly)
        {
            var layoutTemplateBuilder = new LayoutRenderer();

            return(layoutTemplateBuilder.GetLayoutTemplate(pageTemplateName, placeholdersOnly));
        }
        private string RenderLayout(string pageTemplateName, bool placeholdersOnly)
        {
            var layoutTemplateBuilder = new LayoutRenderer();

            return layoutTemplateBuilder.GetLayoutTemplate(pageTemplateName, placeholdersOnly);
        }
示例#12
0
        /// <summary>
        /// Renders the layout.
        /// </summary>
        /// <param name="layoutFileName">Filename of the layout.</param>
        /// <returns>Rendered layout as HTML.</returns>
        private string RenderLayout(string pageTemplateName)
        {
            var layoutTemplateBuilder = new LayoutRenderer();

            return(layoutTemplateBuilder.GetLayoutTemplate(pageTemplateName));
        }
        /// <summary>
        /// Renders the layout.
        /// </summary>
        /// <param name="layoutFileName">Filename of the layout.</param>
        /// <returns>Rendered layout as HTML.</returns>
        private string RenderLayout(string pageTemplateName)
        {
            var layoutTemplateBuilder = new LayoutRenderer();

            return layoutTemplateBuilder.GetLayoutTemplate(pageTemplateName);
        }