public void IsAbsolutePathWorks()
        {
            var pb = new VirtualPathBuilder().CombineWith("~/");

            Assert.IsFalse(pb.IsAbsolutePath());
            pb.Normalize();
            Assert.IsTrue(pb.IsAbsolutePath());

            pb = new VirtualPathBuilder().CombineWith("~");
            Assert.IsFalse(pb.IsAbsolutePath());
            pb.Normalize();
            Assert.IsTrue(pb.IsAbsolutePath());

            pb = new VirtualPathBuilder().CombineWith("~/Foo");
            Assert.IsFalse(pb.IsAbsolutePath());
            pb.Normalize();
            Assert.IsTrue(pb.IsAbsolutePath());

            pb = new VirtualPathBuilder("/Foo");
            Assert.IsFalse(pb.IsAbsolutePath());
            Assert.IsTrue(pb.CombineWith("/Foo/").IsAbsolutePath());
            Assert.IsTrue(pb.Clear().CombineWith("/Foo").IsAbsolutePath());
            Assert.IsTrue(pb.Clear().CombineWith("/Foo/Doo").IsAbsolutePath());
            Assert.IsTrue(pb.Clear().CombineWith("/Foo/Doo/Boo").IsAbsolutePath());
            Assert.IsTrue(pb.CombineWith("../..") == "/Foo");
            Assert.IsTrue(pb.WithRootOperator().HasRootOperator());

            pb = new VirtualPathBuilder("/Foo");
            pb.CombineWith("/Doo/Foo");
            Assert.IsTrue(pb.IsAbsolutePath());
            Assert.IsFalse(pb.IsValidAbsolutePath());
        }
Exemple #2
0
        public void GetVirtualPath_TestAssembly_ReturnsAssemblyNameWithPrefix()
        {
            var controllerAssembly = Assembly.GetExecutingAssembly();
            var result             = new VirtualPathBuilder().GetVirtualPath(controllerAssembly);

            Assert.AreEqual("Frontend-Assembly/Telerik.Sitefinity.Frontend.Test/", result);
        }
        private static VirtualPathBuilder NormalizeWorks(string appName, string part, params string[] normalizeResults)
        {
            var pb = new VirtualPathBuilder(appName);

            pb.CombineWith(part);
            Assert.IsTrue(pb == part);

            if (normalizeResults.Length > 0)
            {
                foreach (var normalizeResult in normalizeResults)
                {
                    Assert.IsTrue(pb == normalizeResult);
                }
                pb = pb.Normalize();
            }
            else
            {
                var caught = false;
                try {
                    pb.Normalize();
                }
                catch (InvalidOperationException ex) {
                    Debug.WriteLine("Expected error: {0}".FormatWith(ex.Message));
                    caught = true;
                }
                Assert.IsTrue(caught);
                return(null);
            }
            return(pb);
        }
        public void RemoveTrailingSlashWorks()
        {
            var pb = new VirtualPathBuilder().CombineWith("/").RemoveTrailingSlash();

            Assert.IsTrue(pb == "");
            pb.Clear().CombineWith("/").RemoveTrailingSlash(true);
            Assert.IsTrue(pb == "/");
        }
        public void PathBuilderWorksWithRootPartAdded()
        {
            var pb = new VirtualPathBuilder();

            pb.CombineWith("/");
            pb.CombineWith("/");
            Assert.AreEqual("/", pb.ToString());
        }
        public void AppendTrailingSlashWorks()
        {
            var pb = new VirtualPathBuilder().CombineWith("/").AppendTrailingSlash();

            Assert.IsTrue(pb == "/");
            pb.Clear().CombineWith("/foo").AppendTrailingSlash();
            Assert.IsTrue(pb.HasTrailingSlash());
            Assert.IsTrue(pb == "/foo/");
        }
        public void PathBuilderCanBeCreatedFromTwoParts()
        {
            var pb = new VirtualPathBuilder();

            pb.CombineWith("~/part1", "part2").Normalize();
            Assert.AreEqual("/part1/part2", pb.ToString());
            pb.WithRootOperator();
            Assert.AreEqual("~/part1/part2", pb.ToString());
        }
 private static void AssertIsAbsolute(VirtualPathBuilder pb)
 {
     Assert.IsTrue(pb.IsAbsolutePath());
     Assert.IsFalse(pb.IsRelativePath());
     Assert.IsFalse(pb.HasRootOperator());
     Assert.IsFalse(pb.HasExtension());
     Assert.IsFalse(pb.HasTrailingSlash());
     Assert.IsTrue(pb.IsValidAbsolutePath());
 }
        public void RemoveExtensionWorks()
        {
            var pb = new VirtualPathBuilder();

            pb.RemoveExtension();
            pb.CombineWith("oops.cs");
            Assert.IsTrue(pb.GetExtension() == "cs");
            pb.RemoveExtension();
            Assert.IsNull(pb.GetExtension());
        }
        public void NormalizingToRootRelativeWorksForBackDirectory()
        {
            var pb = new VirtualPathBuilder();

            pb
            .CombineWith("/", "/foo/..")
            .Normalize()
            .WithRootOperator();
            Assert.AreEqual("~/", pb.ToString());
        }
        public void GetVirtualPath_TestAssembly_ReturnsAssemblyNameWithPrefix()
        {
            //Arrange
            var controllerAssembly = Assembly.GetExecutingAssembly();

            //Act
            var result = new VirtualPathBuilder().GetVirtualPath(controllerAssembly);

            //Assert
            Assert.AreEqual("Frontend-Assembly/Telerik.Sitefinity.Frontend.Test/", result, "The virtual path is not resolved correctly.");
        }
        public void CombineWithWorks()
        {
            var pb = new VirtualPathBuilder("/foo").CombineWith("oops/../doo/.").Normalize();

            Assert.IsTrue(pb == "/foo/doo");
            pb = new VirtualPathBuilder("/foo").CombineWith("oops", "..", "doo", ".", ".").Normalize();
            Assert.IsTrue(pb == "/foo/doo");
            pb = new VirtualPathBuilder("/foo").CombineWith("oops", "..", "doo", ".", ".", "~/").Normalize();
            Assert.IsTrue(pb == "/foo");
            Assert.IsTrue(pb == "~/");
        }
        public void HasExtensionWorks()
        {
            var pb = new VirtualPathBuilder().CombineWith(".");

            Assert.IsTrue(pb == ".");
            Assert.IsFalse(pb.HasExtension());
            pb.Clear().CombineWith("~/oops.cshtml");
            Assert.IsTrue(pb.HasExtension());
            pb.Normalize();
            Assert.IsTrue(pb.HasExtension());
        }
        public void HasTrailingSlashWorks()
        {
            var pb = new VirtualPathBuilder().CombineWith("/").Normalize();

            Assert.IsTrue(pb.HasTrailingSlash());
            Assert.IsFalse(pb.HasTrailingSlash(true));
            pb.Clear().CombineWith("/foo/");
            Assert.IsTrue(pb.HasTrailingSlash());
            pb.Clear().CombineWith("/foo");
            Assert.IsFalse(pb.HasTrailingSlash());
        }
Exemple #15
0
        public void AddParams_WithoutParams_PreservesUrl()
        {
            // Arrange
            var    virtualPathBuilder = new VirtualPathBuilder();
            string urlWithoutParams   = "/sfLayouts/test.master";

            // Act
            string resultUrl = virtualPathBuilder.AddParams(urlWithoutParams, string.Empty);

            // Assert
            Assert.AreEqual(urlWithoutParams, resultUrl, "The URL has been changed.");
        }
 protected string NormalizeVirtualPath(string virtualPath)
 {
     if (virtualPath.NullOrEmpty())
     {
         throw new ArgumentNullException("virtualPath");
     }
     virtualPath = new VirtualPathBuilder(Context.Config.RootOperator.Path)
                   .CombineWith(virtualPath)
                   .WithRootOperator()
                   .AddOrKeepExtension(Context.Config.Templates.DefaultExtension);
     return(virtualPath);
 }
        public void RemoveParams_WithoutParams_PreservesUrl()
        {
            //Arrange
            var vpBuilder        = new VirtualPathBuilder();
            var urlWithoutParams = "/sfLayouts/test.master";

            //Act
            var resultUrl = vpBuilder.RemoveParams(urlWithoutParams);

            //Assert
            Assert.AreEqual(urlWithoutParams, resultUrl, "The URL has been changed.");
        }
        public void AddOrKeepExtensionWorks()
        {
            var pb = new VirtualPathBuilder().CombineWith("~/t.cs");

            Assert.IsTrue(pb.GetExtension() == "cs");
            pb.AddOrKeepExtension("vb");
            Assert.IsTrue(pb.GetExtension() == "cs");
            pb.Clear().CombineWith("foo");
            Assert.IsFalse(pb.HasExtension());
            pb.AddOrKeepExtension("vb");
            Assert.IsTrue(pb.GetExtension() == "vb");
        }
Exemple #19
0
        public void RemoveParams_UrlWithParams_RemovesParams()
        {
            // Arrange
            var    virtualPathBuilder = new VirtualPathBuilder();
            string urlWithParams      = "/sfLayouts/test.master#someParam.master";
            string expectedUrl        = "/sfLayouts/test.master";

            // Act
            string resultUrl = virtualPathBuilder.RemoveParams(urlWithParams);

            // Assert
            Assert.AreEqual(expectedUrl, resultUrl, "The parameters are not stripped correctly from the URL.");
        }
Exemple #20
0
        public void AddParams_WithParams_AddsParams()
        {
            // Arrange
            var    virtualPathBuilder = new VirtualPathBuilder();
            string urlWithParams      = "/sfLayouts/test.master#someParam.master";
            string url = "/sfLayouts/test.master";

            // Act
            string resultUrl = virtualPathBuilder.AddParams(url, "someParam");

            // Assert
            Assert.AreEqual(urlWithParams, resultUrl, "The parameters are not added correctly from the URL.");
        }
        public void IsRelativePathWorks()
        {
            var pb = new VirtualPathBuilder();

            Assert.IsFalse(pb.IsRelativePath());
            pb.CombineWith(".");
            Assert.IsTrue(pb.IsRelativePath());
            pb.Clear().CombineWith("Foo");
            Assert.IsTrue(pb.IsRelativePath());
            pb.Normalize();
            Assert.IsFalse(pb.IsRelativePath());
            Assert.IsTrue(pb.IsAbsolutePath());
        }
Exemple #22
0
        public void GetVirtualPath_RegisteredWidget_ReturnsVirtualPathForItsAssembly()
        {
            var controllerAssembly = typeof(DummyController).Assembly;
            var vpBuilder          = new VirtualPathBuilder();
            var expected           = vpBuilder.GetVirtualPath(controllerAssembly);

            using (var factoryReg = new ControllerFactoryRegion <DummyControllerFactory>())
            {
                factoryReg.Factory.ControllerRegistry["Dummy"] = typeof(DummyController);

                var result = vpBuilder.GetVirtualPath(typeof(DummyController));
                Assert.AreEqual(expected, result);
            }
        }
        public void ClearWorks()
        {
            var pb = new VirtualPathBuilder("/Foo");

            Assert.AreEqual(string.Empty, pb.ToString());
            Assert.AreEqual("/Foo/", pb.ApplicationRoot);
            pb.CombineWith("Doo");
            Assert.AreEqual("Doo", pb.ToString());
            Assert.AreEqual("/Foo/Doo", pb.Normalize().ToString());
            pb.Clear();
            Assert.AreEqual(string.Empty, pb.ToString());
            pb.CombineWith(".");
            Assert.AreEqual("", pb.Normalize().ToString());
        }
        public void WithRootOperatorWorks()
        {
            var pb     = new VirtualPathBuilder("/Foo");
            var caught = false;

            try{
                pb.WithRootOperator();
            }
            catch (InvalidOperationException) {
                caught = true;
            }
            Assert.IsTrue(caught);
            Assert.IsTrue(pb.CombineWith("/Foo").WithRootOperator() == "~/");
            Assert.IsTrue(pb.Clear().CombineWith("Doo").WithRootOperator() == "~/Doo");
        }
        private static void MonkeyTest(string appName)
        {
            var pb = new VirtualPathBuilder(appName);

            Assert.AreEqual("", pb.ToString());
            Assert.AreEqual((appName + "/").Replace("//", "/"), pb.ApplicationRoot);
            Assert.AreEqual(pb.Length, 0);
            Assert.IsTrue(pb == "");
            Assert.IsFalse(pb.IsAbsolutePath());
            Assert.IsFalse(pb.IsApplicationRoot());
            Assert.IsFalse(pb.IsRelativePath());
            Assert.IsFalse(pb.HasRootOperator());
            Assert.IsFalse(pb.HasExtension());
            Assert.IsFalse(pb.HasTrailingSlash());
            Assert.IsFalse(pb.IsValidAbsolutePath());
        }
        public void IsApplicationRootWorks()
        {
            var pb = new VirtualPathBuilder();

            Assert.IsFalse(pb.IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("/").Normalize().IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("~").Normalize().IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("~/").Normalize().IsApplicationRoot());

            pb = new VirtualPathBuilder("/Foo");
            Assert.IsFalse(pb.IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("/Foo").Normalize().IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("/Foo/").Normalize().IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("~").Normalize().IsApplicationRoot());
            Assert.IsTrue(pb.Clear().CombineWith("~/").Normalize().IsApplicationRoot());
        }
Exemple #27
0
        public void GetVirtualPath_RegisteredWidget_ReturnsVirtualPathForItsAssembly()
        {
            // Arrange
            Assembly controllerAssembly = typeof(DummyController).Assembly;
            var      virtualPathBuilder = new VirtualPathBuilder();
            string   expected           = virtualPathBuilder.GetVirtualPath(controllerAssembly);

            using (var factoryReg = new ControllerFactoryRegion <DummyControllerFactory>())
            {
                factoryReg.Factory.ControllerRegistry["Dummy"] = typeof(DummyController);

                // Act
                string result = virtualPathBuilder.GetVirtualPath(typeof(DummyController));

                // Assert
                Assert.AreEqual(expected, result, "The virtual path is not retrieved properly.");
            }
        }
Exemple #28
0
        /// <summary>
        /// Registers an in-memory template bound to a virtual path.
        /// </summary>
        /// <param name="virtualPath">The virtual path.</param>
        /// <param name="content">The content.</param>
        /// <returns></returns>
        public RazorMachine RegisterTemplate(string virtualPath, string content)
        {
            if (virtualPath.NullOrEmpty())
            {
                throw new ArgumentNullException("virtualPath");
            }
            virtualPath = new VirtualPathBuilder(Context.Config.RootOperator.Path)
                          .CombineWith(virtualPath)
                          .WithRootOperator()
                          .AddOrKeepExtension(Context.Config.Templates.DefaultExtension);
            var provider = Context.TemplateFactory.ContentManager.TryGetContentProvider <MemoryContentProvider>();

            if (provider == null)
            {
                Context.TemplateFactory.ContentManager.AddContentProvider(provider = new MemoryContentProvider());
            }
            provider.RegisterTemplate(virtualPath, content);
            return(this);
        }
        public void ResolveRootOperatorWorks()
        {
            var pb = new VirtualPathBuilder();

            Assert.IsTrue(pb.CombineWith("Foo").ResolveRootOperator().ToString() == "/Foo");
            Assert.IsTrue(pb.Clear().CombineWith("~/").ResolveRootOperator().ToString() == "/");
            Assert.IsTrue(pb.Clear().CombineWith("~").ResolveRootOperator().ToString() == "/");
            pb = new VirtualPathBuilder("/Foo");
            Assert.IsTrue(pb.CombineWith("~/Doo").ResolveRootOperator().ToString() == "/Foo/Doo");
            var caught = false;

            try{
                pb.Clear().CombineWith("/Oops").ResolveRootOperator();
            }
            catch (InvalidOperationException) {
                caught = true;
            }
            Assert.IsTrue(caught);
        }
        public void GetLastPartWorks()
        {
            var pb = new VirtualPathBuilder("/foo").CombineWith("~/app/path/");

            Assert.IsTrue(pb.GetLastPart() == "path");
            Assert.IsTrue(pb.GetLastPart(true) == "path");
            Assert.IsTrue(pb.GetLastPart() == "app");
            Assert.IsTrue(pb.GetLastPart(true) == "app");
            Assert.IsTrue(pb.GetLastPart() == "~/");
            Assert.IsTrue(pb.GetLastPart(true) == "~/");
            Assert.IsTrue(pb.GetLastPart(true) == "");

            pb = new VirtualPathBuilder("/foo").CombineWith("~/app/path/").Normalize();
            Assert.IsTrue(pb.GetLastPart() == "path");
            Assert.IsTrue(pb.GetLastPart(true) == "path");
            Assert.IsTrue(pb.GetLastPart() == "app");
            Assert.IsTrue(pb.GetLastPart(true) == "app");
            Assert.IsTrue(pb.GetLastPart() == "foo");
            Assert.IsTrue(pb.GetLastPart(true) == "foo");
            Assert.IsTrue(pb.GetLastPart(true) == "/");
        }