Ejemplo n.º 1
0
        public void RazorEngineService_TestDisableTempFileLocking()
        {
            var cache    = new DefaultCachingProvider(t => { });
            var template = "@Model.Property";

            RazorEngineServiceTestFixture.RunTestHelper(service =>
            {
                var model     = new { Property = 0 };
                string result = service.RunCompile(template, "key", null, model);
                Assert.AreEqual("0", result.Trim());
            }, config =>
            {
                config.CachingProvider        = cache;
                config.DisableTempFileLocking = true;
            });
            ICompiledTemplate compiledTemplate;

            Assert.IsTrue(cache.TryRetrieveTemplate(new NameOnlyTemplateKey("key", ResolveType.Global, null), null, out compiledTemplate));
            var data   = compiledTemplate.CompilationData;
            var folder = data.TmpFolder;

            Assert.IsTrue(Directory.Exists(folder));
            data.DeleteAll();
            Assert.IsFalse(Directory.Exists(folder));
        }
Ejemplo n.º 2
0
        public void RazorEngineService_TestThatWeThrowWhenDebugAndDisableLockingAreEnabled()
        {
            var template = "@Model.Property";

            Assert.Throws <InvalidOperationException>(() =>
            {
                RazorEngineServiceTestFixture.RunTestHelper(service =>
                {
                    var model     = new { Property = 0 };
                    string result = service.RunCompile(template, "key", null, model);
                    Assert.AreEqual("0", result.Trim());
                }, config =>
                {
                    config.Debug = true;
                    config.DisableTempFileLocking = true;
                });
            });
        }
        public void RazorEngineService_VeryBadTemplate()
        {
            RazorEngineServiceTestFixture.RunTestHelper(service =>
            {
                string file = Path.Combine(Environment.CurrentDirectory, Path.GetRandomFileName());

                string template = @"
@using System.IO
@using System.Security
@using System.Security.Permissions
@{
(new PermissionSet(PermissionState.Unrestricted)).Assert();
File.WriteAllText(""$file$"", ""BAD DATA"");
}".Replace("$file$", file.Replace("\\", "\\\\"));
                var test        = service.RunCompile(template, "test");

                Assert.IsTrue(File.Exists(file));
                File.Delete(file);
            });
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Check if everything is cleaned up.
        /// </summary>
        public string RazorEngineService_CleanUpWorks(CrossAppDomainCleanUp.IPrinter printer)
        {
            CrossAppDomainCleanUp.CurrentPrinter = printer;
            var cache = new DefaultCachingProvider();

            RazorEngineServiceTestFixture.RunTestHelper(service =>
            {
                string template = @"@Model.Name";

                var result = service.RunCompile(template, "test", null, new { Name = "test" });
                Assert.AreEqual("test", result);
            }, config =>
            {
                config.CachingProvider = cache;
            });
            ICompiledTemplate compiledTemplate;

            Assert.IsTrue(cache.TryRetrieveTemplate(new NameOnlyTemplateKey("test", ResolveType.Global, null), null, out compiledTemplate));
            var folder = compiledTemplate.CompilationData.TmpFolder;

            Assert.IsTrue(Directory.Exists(folder));
            return(folder);
        }