public static string RenderTemplate(string template, ViewDataDictionary viewData) { // Set up your spark engine goodness. var settings = new SparkSettings().SetPageBaseType(typeof(SparkView)); var engine = new SparkViewEngine(settings) { ViewFolder = new FileSystemViewFolder(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\..\IntegrationTestingViews\Views") }; // "Describe" the view (the template, it is a template after all), and its details. var descriptor = new SparkViewDescriptor().AddTemplate(template); // Create a spark view engine instance var view = (SparkView)engine.CreateInstance(descriptor); try { // Merge the view data. viewData.Keys.ToList().ForEach(x => view.ViewData[x] = viewData[x]); // Render the view to a text writer. var writer = new StringWriter(); view.RenderView(writer); return(writer.ToString()); } finally { engine.ReleaseInstance(view); } }
public SparkViewEngine Engine() { if (engine != null) { return(engine); } var settings = new SparkSettings() .SetPageBaseType(typeof(WebFormsSparkView)) .SetNullBehaviour(NullBehaviour.Strict); foreach (var ns in namespaces) { settings = settings.AddNamespace(ns); } foreach (var a in assemblies) { settings = settings.AddAssembly(a); } engine = new SparkViewEngine(settings); engine.ViewFolder = GetViewFolder(); engine.BatchCompilation(GetViewDescriptors()); return(engine); }
static void Main(string[] args) { // following are one-time steps // create engine var settings = new SparkSettings() .SetPageBaseType(typeof(EmailView)); var templates = new InMemoryViewFolder(); var engine = new SparkViewEngine(settings) { ViewFolder = templates }; // add templates templates.Add("sample.spark", @"Dear ${user.Name}, This is an email.Sincerely, Spark View Engine http://constanto.org/unsubscribe/${user.Id}"); // following are per-render steps // render template var descriptor = new SparkViewDescriptor() .AddTemplate("sample.spark"); var view = (EmailView)engine.CreateInstance(descriptor); view.user = new User { Id = 655321, Name = "Alex" }; view.RenderView(Console.Out); Console.ReadLine(); }
public IEnumerable <ConfigurationSetupResult> Setup(string applicationEnvironment) { yield return(new ConfigurationSetupResult("superglue.SparkSetup", environment => { var assemblies = environment.GetAssemblies().ToList(); var templateSource = new AggregatedTemplateSource(new EmbeddedTemplateSource(assemblies), new FileSystemTemplateSource(assemblies, new FileScanner())); environment[SparkEnvironmentExtensions.SparkConstants.TemplateSource] = templateSource; var templates = templateSource.FindTemplates().ToList(); var sparkViewEngine = new SparkViewEngine(new SparkSettings()) { DefaultPageBaseType = typeof(SuperGlueSparkView).FullName, ViewFolder = new SuperGlueViewFolder(templates), PartialProvider = new SuperGluePartialProvider() }; environment[SparkEnvironmentExtensions.SparkConstants.ViewEngine] = sparkViewEngine; environment.AlterSettings <OutputSettings>(x => x.When(y => y.GetRequest().Headers.Accept.Contains("text/html") && y.GetOutput() != null && templates.Any(z => z.ModelType == y.GetOutput().GetType())) .UseRenderer(new RenderOutputUsingSpark(sparkViewEngine, templates))); return Task.CompletedTask; }, "superglue.OutputSetup")); }
public override void Install(IDictionary stateSaver) { // figure out all paths based on this assembly in the bin dir string assemblyPath = GetType().Assembly.Location; string targetPath = Path.ChangeExtension(assemblyPath, ".Views.dll"); string webSitePath = Path.GetDirectoryName(Path.GetDirectoryName(assemblyPath)); string webBinPath = Path.Combine(webSitePath, "bin"); string webFileHack = Path.Combine(webSitePath, "web"); string viewsLocation = Path.Combine(webSitePath, "Views"); // this hack enables you to open the web.config as if it was an .exe.config File.Create(webFileHack).Close(); Configuration config = ConfigurationManager.OpenExeConfiguration(webFileHack); File.Delete(webFileHack); // GetSection will try to resolve the "Spark" assembly, which the installutil appdomain needs help finding AppDomain.CurrentDomain.AssemblyResolve += ((sender, e) => Assembly.LoadFile(Path.Combine(webBinPath, e.Name + ".dll"))); var settings = (ISparkSettings)config.GetSection("spark"); // Finally create an engine with the <spark> settings from the web.config var engine = new SparkViewEngine(settings) { ViewFolder = new FileSystemViewFolder(viewsLocation) }; // And generate all of the known view/master templates into the target assembly engine.BatchCompilation(targetPath, Global.AllKnownDescriptors()); }
public void UseAssemblyAndNamespaceFromSettings() { var settings = new SparkSettings() .AddNamespace("System.Web") .AddAssembly("System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") .SetPageBaseType(typeof(StubSparkView)); var views = new InMemoryViewFolder { { Path.Combine("home", "index.spark"), "<div>${ProcessStatus.Alive}</div>" } }; var engine = new SparkViewEngine(settings) { ViewFolder = views }; var descriptor = new SparkViewDescriptor(); descriptor.Templates.Add(Path.Combine("home", "index.spark")); var contents = engine.CreateInstance(descriptor).RenderView(); Assert.AreEqual("<div>Alive</div>", contents); }
public void SectionAsSegmentAndRenderPrefixes() { var settings = new SparkSettings() .SetPageBaseType(typeof(StubSparkView)) .SetParseSectionTagAsSegment(true); var engine = new SparkViewEngine(settings) { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; var view = (StubSparkView) engine.CreateInstance(new SparkViewDescriptor().AddTemplate("Prefix\\section-render-prefix.spark")); var output = new StringWriter(); view.RenderView(output); ContainsInOrder(output.ToString(), "<p>one</p>", "<p>two</p>", "<p>three</p>", "<macro:ignored>ignored</macro:ignored>", "<content:ignored>ignored</content:ignored>", "<use:ignored>ignored</use:ignored>", "<render:ignored>ignored</render:ignored>", "<section:ignored>ignored</section:ignored>" ); }
/// <summary> /// Initializes a new instance of the <see cref="SparkEngine"/> class. /// </summary> /// <exception cref="ArgumentNullException"><c>viewBaseType</c> or <c>handler</c> is <c>null</c>.</exception> public SparkEngine(Type viewBaseType, InitializeViewHandler handler) { if (viewBaseType == null) { throw new ArgumentNullException("viewBaseType"); } if (handler == null) { throw new ArgumentNullException("handler"); } _viewBaseType = viewBaseType; _handler = handler; _currentEngine = this; SparkSettings settings = new SparkSettings(); settings.AddNamespace("System.Collections.Generic"); settings.AddNamespace("HttpServer.Mvc.Views"); settings.AddNamespace("HttpServer.ViewEngine.Spark"); settings.AddAssembly(GetType().Assembly); settings.AddAssembly(typeof(Server).Assembly); _engine = new SparkViewEngine(settings) { ViewFolder = new MyViewFolder(), DefaultPageBaseType = viewBaseType.FullName }; }
public string Render <TViewData>(string template, TViewData data) { var settings = new SparkSettings(); settings.AddNamespace("Topshelf.Dashboard"); settings.PageBaseType = typeof(TopshelfView).FullName; var engine = new SparkViewEngine(settings) { ViewFolder = _viewFolder, }; ISparkView instance = engine.CreateInstance(new SparkViewDescriptor().AddTemplate(template)); var view = (TopshelfView <TViewData>)instance; view.SetModel(data); var sb = new StringBuilder(); using (var writer = new StringWriter(sb)) view.RenderView(writer); return(sb.ToString()); }
public SourceSupervisor(ISparkSource source) { _source = source; IVsHierarchy hierarchy; uint itemid; IVsTextLines buffer; _source.GetDocument(out hierarchy, out itemid, out buffer); _path = GetDocumentPath(hierarchy, itemid); //Spark.Web.Mvc.SparkView //MyBaseView var settings = new VsProjectSparkSettings(hierarchy) { PageBaseType = source.GetDefaultPageBaseType() }; var viewFolder = new VsProjectViewFolder(_source, hierarchy); _engine = new SparkViewEngine(settings) { ViewFolder = viewFolder }; _grammar = new MarkupGrammar(settings); }
public void PrefixFromSettings() { var settings = new SparkSettings() .SetPageBaseType(typeof(StubSparkView)) .SetPrefix("s"); var engine = new SparkViewEngine(settings) { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; var view = (StubSparkView)engine.CreateInstance(new SparkViewDescriptor().AddTemplate("Prefix\\prefix-from-settings.spark")); view.ViewData["Names"] = new[] { "alpha", "beta", "gamma" }; var output = new StringWriter(); view.RenderView(output); ContainsInOrder(output.ToString(), "<li", "alpha", "</li>", "<li", "beta", "</li>", "<li", "gamma", "</li>", "<var x=\"1/0\">element ignored</var>", "<p each=\"5\">attribute ignored</p>" ); }
public virtual void Init() { mocks = new MockRepository(); var services = new StubMonoRailServices(); services.ViewSourceLoader = new FileAssemblyViewSourceLoader("MonoRail.Tests.Views"); services.AddService(typeof(IViewSourceLoader), services.ViewSourceLoader); viewComponentFactory = new DefaultViewComponentFactory(); viewComponentFactory.Initialize(); services.AddService(typeof(IViewComponentFactory), viewComponentFactory); services.AddService(typeof(IViewComponentRegistry), viewComponentFactory.Registry); var settings = new SparkSettings(); engine = new SparkViewEngine(settings); services.AddService(typeof(ISparkViewEngine), engine); factory = new SparkViewFactory(); factory.Service(services); controller = MockRepository.GenerateMock <IController>(); controllerContext = new ControllerContext(); var request = new StubRequest(); request.FilePath = ""; var response = new StubResponse(); engineContext = new StubEngineContext(request, response, new UrlInfo("", "Home", "Index", "/", "castle")); engineContext.AddService(typeof(IViewComponentFactory), viewComponentFactory); engineContext.AddService(typeof(IViewComponentRegistry), viewComponentFactory.Registry); }
public SparkEngine(DescriptorBuilder builder) { _builder = builder; _engine = new SparkViewEngine(new SparkSettings() { PageBaseType = typeof(SubvertSparkView).FullName }); }
protected override void beforeEach() { _viewEngine = new SparkViewEngine(); _settings = _viewEngine.Settings; Services.Inject <ISparkViewEngine>(_viewEngine); ClassUnderTest.Activate(Enumerable.Empty <IPackageInfo>(), MockFor <IPackageLog>()); }
public void Init() { engine = new SparkViewEngine(new SparkSettings().SetPageBaseType("Spark.Tests.Stubs.StubSparkView")) { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; engine.ExtensionFactory = new StubExtensionFactory(); }
public void Init() { _engine = new SparkViewEngine(new SparkSettings()) { LanguageFactory = new PythonLanguageFactory(), DefaultPageBaseType = typeof(StubSparkView).FullName }; IronPython.Hosting.Python.CreateEngine(); }
public SparkRender() { _viewFolder = new EmbeddedViewFolder(typeof(SparkRender).Assembly, "klinger.views"); _engine = new SparkViewEngine { DefaultPageBaseType = typeof(VoteView).FullName, ViewFolder = _viewFolder }; }
public void Init() { _viewPath = "fake/path"; _partialProvider = MockRepository.GenerateMock <IPartialProvider>(); _engine = new SparkViewEngine(new SparkSettings()) { PartialProvider = _partialProvider }; _result = new[] { "output" }; }
public void Init() { _settings = new SparkSettings() .SetPageBaseType(typeof(StubSparkView)); _engine = new SparkViewEngine(_settings) { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; }
public void Init() { _viewPath = "fake/path"; _partialProvider = MockRepository.GenerateMock<IPartialProvider>(); _engine = new SparkViewEngine(new SparkSettings()) { PartialProvider = _partialProvider }; _result = new[] {"output"}; }
public SparkEngine() { // TODO read settings from config var settings = new SparkSettings { DefaultLanguage = LanguageType.CSharp }; settings.SetPageBaseType(typeof(ViewBase)); _engine = new SparkViewEngine(); }
private ISparkView CreateView(IViewFolder viewFolder, string template) { var settings = new SparkSettings().SetPageBaseType(typeof(StubSparkView)); var engine = new SparkViewEngine(settings) { ViewFolder = viewFolder }; return(engine.CreateInstance(new SparkViewDescriptor().AddTemplate(template))); }
protected void Application_Start(object sender, EventArgs e) { var engine = new SparkViewEngine { ViewFolder = new FileSystemViewFolder(Server.MapPath("~/Views")) }; Application["ViewEngine"] = engine; engine.LoadBatchCompilation(Assembly.Load("MediumTrustHosting.Views")); }
public void InMemoryViewFolderUsedByEngine() { var folder = new InMemoryViewFolder(); folder.Add("home\\index.spark", "<p>Hello world</p>"); var engine = new SparkViewEngine(new SparkSettings().SetPageBaseType(typeof (StubSparkView))){ViewFolder = folder}; var descriptor = new SparkViewDescriptor(); descriptor.Templates.Add("home\\index.spark"); var view = engine.CreateInstance(descriptor); var contents = view.RenderView(); Assert.AreEqual("<p>Hello world</p>", contents); }
/// <summary> /// Initializes a new instance of the <see cref="SparkEngine"/> class. /// </summary> public SparkEngine() { _currentEngine = this; SparkSettings settings = new SparkSettings(); settings.AddNamespace("System.Collections.Generic"); _engine = new SparkViewEngine(settings) { ViewFolder = new MyViewFolder(), DefaultPageBaseType = typeof(SparkView).FullName }; }
public override void Service(IServiceProvider provider) { base.Service(provider); if (Engine == null) Engine = (ISparkViewEngine)provider.GetService(typeof(ISparkViewEngine)); if (Engine == null) Engine = new SparkViewEngine(typeof(SparkView).FullName, this); Engine.ExtensionFactory = this; }
public void GenerateSimpleTemplate() { var descriptor = new SparkViewDescriptor() .SetLanguage(LanguageType.Javascript) .AddTemplate("Clientside\\simple.spark"); var engine = new SparkViewEngine { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; var entry = engine.CreateEntry(descriptor); Assert.IsNotNull(entry.SourceCode); Assert.IsNotEmpty(entry.SourceCode); }
public Templater(string templateFolder) { SparkSettings settings = new SparkSettings() .SetPageBaseType(typeof(TemplateBase)) .AddViewFolder(ViewFolderType.FileSystem, new Dictionary <string, string> { { "basePath", templateFolder } }); engine = new SparkViewEngine(settings); }
public HtmlGenerator() { var setup = new SparkSettings(); setup.AddNamespace(typeof(Program).Namespace); setup.AddNamespace(typeof(TemplateExtensions.TemplateHelperExtensions).Namespace); setup.AddNamespace(typeof(Parsing.Model.TypeIdentifier).Namespace); setup.AddNamespace(typeof(System.Linq.Enumerable).Namespace); engine = new SparkViewEngine(setup); SetTemplatePath("templates"); engine.DefaultPageBaseType = typeof(SparkTemplateBase).FullName; }
public void ApplySettings() { var settings = new SparkSettings() .AddViewFolder(ViewFolderType.VirtualPathProvider, new Dictionary<string, string> { { "virtualBaseDir", "~/MoreViews/" } }); var engine = new SparkViewEngine(settings); var folder = engine.ViewFolder; Assert.IsAssignableFrom(typeof(CombinedViewFolder), folder); var combined = (CombinedViewFolder)folder; Assert.IsAssignableFrom(typeof(VirtualPathProviderViewFolder), combined.Second); var vpp = (VirtualPathProviderViewFolder)combined.Second; Assert.AreEqual("~/MoreViews/", vpp.VirtualBaseDir); }
public void ProcessRequest(HttpContext context) { var engine = new SparkViewEngine { ViewFolder = new VirtualPathProviderViewFolder("~/Views") }; var entry = engine.CreateEntry(new SparkViewDescriptor() .SetLanguage(LanguageType.Javascript) .AddTemplate(context.Request.PathInfo.TrimStart('/', Path.DirectorySeparatorChar) + ".spark")); //Spark.Simple._LiteralHtml({foo:'asoi'}) context.Response.ContentType = "text/javascript"; context.Response.Write(entry.SourceCode); }
public void AssemblyParameter() { var settings = new SparkSettings() .AddViewFolder(ViewFolderType.EmbeddedResource, new Dictionary<string, string> { { "assembly", "Spark.Tests" }, { "resourcePath", "Spark.Tests.Views" } }); var engine = new SparkViewEngine(settings); var folder = engine.ViewFolder; Assert.IsAssignableFrom(typeof(CombinedViewFolder), folder); var combined = (CombinedViewFolder)folder; Assert.IsAssignableFrom(typeof(EmbeddedViewFolder), combined.Second); var embeddedViewFolder = (EmbeddedViewFolder)combined.Second; Assert.AreEqual(Assembly.Load("spark.tests"), embeddedViewFolder.Assembly); }
public void CustomViewFolder() { var settings = new SparkSettings() .AddViewFolder(typeof(MyViewFolder), new Dictionary<string, string> { { "foo", "quux" }, { "bar", "42" } }); var engine = new SparkViewEngine(settings); var folder = engine.ViewFolder; Assert.IsAssignableFrom(typeof(CombinedViewFolder), folder); var combined = (CombinedViewFolder)folder; Assert.IsAssignableFrom(typeof(MyViewFolder), combined.Second); var customFolder = (MyViewFolder)combined.Second; Assert.AreEqual("quux", customFolder.Foo); Assert.AreEqual(42, customFolder.Bar); }
public IBuilder Load(Options options) { var currentDirectory = Environment.CurrentDirectory; var assemblyDirectory = Path.GetDirectoryName(typeof(SakeEngine).Assembly.Location); var settings = new SparkSettings() .SetPageBaseType(typeof(BuilderBase)) .SetAutomaticEncoding(true) .SetAttributeBehaviour(AttributeBehaviour.TextOriented) .SetDebug(true); IViewFolder viewFolder = new FileSystemViewFolder(currentDirectory); foreach (var includeDir in options.IncludeDirectory) { var path = Path.Combine(currentDirectory, includeDir); viewFolder = new CombinedViewFolder(viewFolder, new FileSystemViewFolder(path)); foreach (var file in Directory.EnumerateFiles(path, "*.dll")) { try { Assembly.LoadFile(file); } catch { } } } viewFolder = new CombinedViewFolder(viewFolder, new FileSystemViewFolder(assemblyDirectory)); var engine = new SparkViewEngine(settings) { ViewFolder = viewFolder, ExtensionFactory = new ExtensionFactory(), }; var descriptor = new SparkViewDescriptor { Templates = new[] { options.Makefile } }; var builder = (BuilderBase)engine.CreateInstance(descriptor); builder.Output = new StringWriter(); builder.Log = _log; builder.SakeSettings = _settings; builder.Render(); return(builder); }
protected override void beforeEach() { _viewEngine = new SparkViewEngine(); _settings = _viewEngine.Settings; var commonViewNamespaces = new CommonViewNamespaces(); commonViewNamespaces.Add("Foo"); commonViewNamespaces.Add("Bar"); Services.Inject(commonViewNamespaces); Services.Inject <ISparkViewEngine>(_viewEngine); ClassUnderTest.Activate(Enumerable.Empty <IPackageInfo>(), MockFor <IPackageLog>()); }
public void AnonymousTypeBecomesHashLikeObject() { var descriptor = new SparkViewDescriptor() .SetLanguage(LanguageType.Javascript) .AddTemplate("Clientside\\AnonymousTypeBecomesHashLikeObject.spark"); var engine = new SparkViewEngine { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; var entry = engine.CreateEntry(descriptor); Assert.IsNotNull(entry.SourceCode); Assert.IsNotEmpty(entry.SourceCode); Assert.That(entry.SourceCode, Text.Contains("x = {foo:\"bar\",quux:5}")); Assert.That(entry.SourceCode, Text.Contains("HelloWorld({id:23,data:x})")); }
public void CustomViewActivator() { var engine = new SparkViewEngine( new SparkSettings().SetPageBaseType(typeof(StubSparkView))) { ViewActivatorFactory = new CustomFactory(), ViewFolder = new InMemoryViewFolder { { "hello/world.spark", "<p>hello world</p>" } } }; var descriptor = new SparkViewDescriptor().AddTemplate("hello/world.spark"); var view = engine.CreateInstance(descriptor); Assert.IsNotNull(view); Assert.IsAssignableFrom(typeof(TestView), view); }
public void Init() { settings = new SparkSettings().SetPageBaseType("Spark.Tests.Stubs.StubSparkView"); engine = new SparkViewEngine(settings) { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; factory = new StubViewFactory { Engine = engine }; sb = new StringBuilder(); mocks = new MockRepository(); }
public void UsingCSharpSyntaxInsideEngine() { // engine takes base class and IViewFolder var engine = new SparkViewEngine( new SparkSettings().SetPageBaseType("Spark.Tests.Stubs.StubSparkView")) { SyntaxProvider = _syntax, ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; // describe and instantiate view var descriptor = new SparkViewDescriptor(); descriptor.Templates.Add("Code\\simplecode.spark"); var view = (StubSparkView)engine.CreateInstance(descriptor); // provide data and render view.ViewData["hello"] = "world"; var code = view.RenderView(); Assert.IsNotNull(code); }
protected override void Configure() { var settings = new SparkSettings(); settings.SetNullBehaviour(NullBehaviour.Strict); var sparkViewEngine = new SparkViewEngine(settings); serviceProvider.AddService(typeof(ISparkViewEngine), sparkViewEngine); factory = new SparkViewFactory(); factory.Service(serviceProvider); manager = new DefaultViewEngineManager(); manager.Service(serviceProvider); serviceProvider.ViewEngineManager = manager; serviceProvider.AddService(typeof(IViewEngineManager), manager); manager.RegisterEngineForExtesionLookup(factory); manager.RegisterEngineForView(factory); factory.Service(serviceProvider); }
public void SectionAsSegmentAndRenderPrefixes() { var settings = new SparkSettings() .SetPageBaseType(typeof (StubSparkView)) .SetParseSectionTagAsSegment(true); var engine = new SparkViewEngine(settings) { ViewFolder = new FileSystemViewFolder("Spark.Tests.Views") }; var view = (StubSparkView) engine.CreateInstance(new SparkViewDescriptor().AddTemplate("Prefix\\section-render-prefix.spark")); var output = new StringWriter(); view.RenderView(output); ContainsInOrder(output.ToString(), "<p>one</p>", "<p>two</p>", "<p>three</p>", "<macro:ignored>ignored</macro:ignored>", "<content:ignored>ignored</content:ignored>", "<use:ignored>ignored</use:ignored>", "<render:ignored>ignored</render:ignored>", "<section:ignored>ignored</section:ignored>" ); }
public void TypeFileSystemCreatesFileSystemViewFolder() { var settings = new SparkSettings() .AddViewFolder(ViewFolderType.FileSystem, new Dictionary<string, string> { {"basePath", @"e:\no\such\path"} }); var engine = new SparkViewEngine(settings); var folder = engine.ViewFolder; Assert.IsAssignableFrom(typeof(CombinedViewFolder), folder); var combined = (CombinedViewFolder)folder; Assert.IsAssignableFrom(typeof(FileSystemViewFolder), combined.Second); var fileSystemViewFolder = (FileSystemViewFolder)combined.Second; Assert.AreEqual(@"e:\no\such\path", fileSystemViewFolder.BasePath); }
public void UseAssemblyAndNamespaceFromSettings() { var settings = new SparkSettings() .AddNamespace("System.Web") .AddAssembly("System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") .SetPageBaseType(typeof(StubSparkView)); var views = new InMemoryViewFolder(); views.Add("Home\\Index.spark", "<div>${ProcessStatus.Alive}</div>"); var engine = new SparkViewEngine(settings) {ViewFolder = views}; var descriptor = new SparkViewDescriptor(); descriptor.Templates.Add("home\\index.spark"); var contents = engine.CreateInstance(descriptor).RenderView(); Assert.AreEqual("<div>Alive</div>", contents); }
public void UnicodeCharactersSurviveConversionToByteArrayAndBack() { var folder = new InMemoryViewFolder(); folder.Add("Home\\fr.spark", "Fran\u00E7ais"); folder.Add("Home\\ru.spark", "\u0420\u0443\u0441\u0441\u043A\u0438\u0439"); folder.Add("Home\\ja.spark", "\u65E5\u672C\u8A9E"); Assert.That(ReadToEnd(folder, "Home\\fr.spark"), Is.EqualTo("Français")); Assert.That(ReadToEnd(folder, "Home\\ru.spark"), Is.EqualTo("Русский")); Assert.That(ReadToEnd(folder, "Home\\ja.spark"), Is.EqualTo("日本語")); var settings = new SparkSettings().SetPageBaseType(typeof(StubSparkView)); var engine = new SparkViewEngine(settings) { ViewFolder = folder }; Assert.That(RenderView(engine, "Home\\fr.spark"), Is.EqualTo("Français")); Assert.That(RenderView(engine, "Home\\ru.spark"), Is.EqualTo("Русский")); Assert.That(RenderView(engine, "Home\\ja.spark"), Is.EqualTo("日本語")); }
private ISparkView CreateView(IViewFolder viewFolder, string template) { CompiledViewHolder.Current = new CompiledViewHolder(); var settings = new SparkSettings().SetPageBaseType(typeof(StubSparkView)); var engine = new SparkViewEngine(settings) { ViewFolder = viewFolder }; return engine.CreateInstance(new SparkViewDescriptor().AddTemplate(template)); }
public void Init() { engine = new SparkViewEngine(new SparkSettings().SetPageBaseType("Spark.Tests.Stubs.StubSparkView")) {ViewFolder = new FileSystemViewFolder("Spark.Tests.Views")}; engine.ExtensionFactory = new StubExtensionFactory(); }