public async Task NestedTemplatePageTest() { var t2 = new TemplateMock("t2", "*T2* @Model.Page.Url {{ content }}_T2"); var t1 = new TemplateMock("t1", "*T1* @Model.Page.Url {{ content }}_T1", null, t2); var t3 = new TemplateMock("t3", "T3{{ content }}T3"); var t4 = new TemplateMock("t4", "T4{{ content }}T4", null, t3); var p1 = new PageMock("page1", "**Page1** @Model.Page.Url", t1); var p2 = new PageMock("page2", "**Page2** @Model.Page.Url", t1); var p3 = new PageMock("page3", "Page3", t4); var p4 = new PageMock("page4", "Page4", t4); p1.SubPages.Add(p2); p1.SubPages.Add(p3); p1.SubPages.Add(p4); var site = new Site("", "", p1, null); var files = await m_Compiler.Compile(site).ToListAsync(); Assert.AreEqual("*T2* / *T1* / <p><strong>Page1</strong> @Model.Page.Url</p>_T1_T2", files.First(f => f.Location.ToId() == "index.html").AsTextContent()); Assert.AreEqual("*T2* /page2/ *T1* /page2/ <p><strong>Page2</strong> @Model.Page.Url</p>_T1_T2", files.First(f => f.Location.ToId() == "page2::index.html").AsTextContent()); Assert.AreEqual("T3T4<p>Page3</p>T4T3", files.First(f => f.Location.ToId() == "page3::index.html").AsTextContent()); Assert.AreEqual("T3T4<p>Page4</p>T4T3", files.First(f => f.Location.ToId() == "page4::index.html").AsTextContent()); }
public async Task InsertContentNested() { var site = new Mock <ISite>().Object; var page = new Mock <IPage>().Object; var t1 = new TemplateMock("", "T1 {{ content }} T1"); var t2 = new TemplateMock("", "T2 {{ content }} T2", null, t1); Assert.AreEqual("T1 T2 __replacement__ T2 T1", await m_Parser.InsertContent(t2, "__replacement__", site, page, "")); }
public async Task Compile_BaseUrlTest() { var layout = new TemplateMock("l1", "<!DOCTYPE html><html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"/_assets/a1.css\"><link rel=\"stylesheet\" type=\"text/css\" href=\"a2.css\"><link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.example.com/a3.css\"><script type=\"text/javascript\" src=\"/_assets/s1.js\"></script><script type=\"text/javascript\" src=\"s2.js\"></script><script type=\"text/javascript\" src=\"https://www.example.com/s3.js\"></script><title>P1</title></head><body><h1>Heading</h1><img src=\"/_assets/i1.png\"><img src=\"i2.png\"><img src=\"https://www.example.com/i3.png\"><a href=\"/\"></a><a href=\"/l1/\"></a><a href=\"l2/\"></a><a href=\"https://www.example.com/l3/\"></a><p>Paragraph</p></body></html>"); var page = new PageMock("p1", "test", layout); var site = new Site("", "/basetest/", page, null); var files = await m_Compiler.Compile(site).ToListAsync(); var content = files.First(f => f.Location.ToId() == "index.html").AsTextContent(); Assert.AreEqual("<!DOCTYPE html><html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"/basetest/_assets/a1.css\"><link rel=\"stylesheet\" type=\"text/css\" href=\"a2.css\"><link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.example.com/a3.css\"><script type=\"text/javascript\" src=\"/basetest/_assets/s1.js\"></script><script type=\"text/javascript\" src=\"s2.js\"></script><script type=\"text/javascript\" src=\"https://www.example.com/s3.js\"></script><title>P1</title></head><body><h1>Heading</h1><img src=\"/basetest/_assets/i1.png\"><img src=\"i2.png\"><img src=\"https://www.example.com/i3.png\"><a href=\"/basetest/\"></a><a href=\"/basetest/l1/\"></a><a href=\"l2/\"></a><a href=\"https://www.example.com/l3/\"></a><p>Paragraph</p></body></html>", content); }
public async Task Compile_NestedTemplateMultiPageTest() { var t2 = new TemplateMock("t2", "T2 _FN_ _C_ T2"); var t1 = new TemplateMock("t1", "T1 _FN_ _C_ T1", null, t2); var p1 = new PageMock("page1", "Page1 _FN_", t1); p1.SubPages.Add(new PageMock("page2", "Page2 _FN_", t1)); var site = new Site("", "", p1, null); var files = await m_Compiler.Compile(site).ToListAsync(); Assert.AreEqual("T2 index.html T1 index.html CT_Page1 index.html_CT T1 T2", files.First(f => f.Location.ToId() == "index.html").AsTextContent()); Assert.AreEqual("T2 page2.html T1 page2.html CT_Page2 page2.html_CT T1 T2", files.First(f => f.Location.ToId() == "page2::index.html").AsTextContent()); }
public async Task IncludeLayoutTest() { var l1 = new TemplateMock("l1", "abc {% i1 { p1: B } %} klm {{ content }} xyz"); var p1 = new PageMock("page1", "p1 {% i1 %}", l1); var site = new Site("", "", p1, null); site.Includes.Add(new TemplateMock("i1", "@inherits TemplatePage<Xarial.Docify.Base.Context.IContextModel>\r\nSome Value: @Model.Data[\"p1\"]", new Metadata() { { "p1", "A" } })); var files = await m_Compiler.Compile(site).ToListAsync(); Assert.AreEqual("abc Some Value: B klm <p>p1 Some Value: A</p> xyz", files.First(f => f.Location.ToId() == "index.html").AsTextContent()); }
public void Deve_Criar_Template_Valido() { var template = TemplateMock.GetTemplate(); Assert.NotNull(template); }