Beispiel #1
0
        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());
        }
Beispiel #2
0
        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, ""));
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        public void Deve_Criar_Template_Valido()
        {
            var template = TemplateMock.GetTemplate();

            Assert.NotNull(template);
        }