Ejemplo n.º 1
0
        public void LoadTest_Empty()
        {
            string        xtml     = string.Empty;
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_option, null);

            Assert.AreEqual <int>(0, document.ChildNodes.Count());
        }
        public void RenderTest()
        {
            string xtml = "文章信息\r\n名称:[dst:Name /]\r\n作者:[dst:Author /]\r\n时间:[dst:CreateTime /]";

            TemplateEngine.TagSystem.RegisterTag(new XtmlNodeRendererWrapper(new DataSourcePropertyXtmlElementRenderer <ArticleInfo, string>("Name"))
            {
                Name    = "名称",
                TagName = "dst:Name",
            });
            TemplateEngine.TagSystem.RegisterTag(new XtmlNodeRendererWrapper(new DataSourcePropertyXtmlElementRenderer <ArticleInfo, string>("Author"))
            {
                Name    = "作者",
                TagName = "dst:Author",
            });
            TemplateEngine.TagSystem.RegisterTag(new XtmlNodeRendererWrapper(new DataSourcePropertyXtmlElementRenderer <ArticleInfo, DateTime>("CreateTime", null, "yyyy-MM-dd HH:mm:ss"))
            {
                Name    = "时间",
                TagName = "dst:CreateTime",
            });
            string        filePath = Guid.NewGuid() + ".txt";
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_prefixOption, null);

            TemplateEngine.TemplateSystem.Render(document, new ArticleInfo {
                Name       = "名称",
                Author     = "作者",
                CreateTime = new DateTime(2012, 12, 7, 8, 10, 30),
            }, null, filePath);

            Assert.AreEqual <string>("文章信息\r\n名称:名称\r\n作者:作者\r\n时间:2012-12-07 08:10:30", File.ReadAllText(filePath, Encoding.GetEncoding(document.Declaration.Encoding)));
        }
Ejemplo n.º 3
0
        public void LoadTest_File()
        {
            string file = Path.Combine(new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName, "Resources\\Template.html");

            using (TextReader reader = new StreamReader(file, Encoding.UTF8)) {
                IXtmlDocument document = TemplateEngine.TemplateSystem.Load(reader, this.m_onePrefixOption, null);
            }
        }
Ejemplo n.º 4
0
        public void LoadTest_OneElement()
        {
            string        xtml     = "[?xtml version=\"1.1\" encoding=\"gb2312\" ?]\r\n[name a0=\"value0\"]holder[/name]holder";
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_option, null);

            Assert.AreEqual <int>(4, document.ChildNodes.Count());
            Assert.AreEqual <string>("name", document.ChildNodes.ElementAt(2).LocalName);
        }
Ejemplo n.º 5
0
        public void LoadTest_NoChildren()
        {
            string        xtml     = "holder&lte;占位符&gte;holder";
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_option, null);

            Assert.AreEqual <int>(1, document.ChildNodes.Count());
            Assert.AreEqual <string>(xtml, document.ChildNodes.ElementAt(0).NodeXtml);
            Assert.AreEqual <string>(this.m_option.Context.Decode(xtml), ((IXtmlText)document.ChildNodes.ElementAt(0)).Text);
        }
Ejemplo n.º 6
0
        public void LoadTest_MutipleElement_MultiplePrefix()
        {
            string        xtml     = "[?xtml version=\"1.1\" encoding=\"gb2312\" ?]\r\n[x:a a0=\"&lte;value0&gte;\"]holder\r\n[y:b /][/x:a]holder";
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_twoPrefixOption, "abc");

            Assert.AreEqual <int>(4, document.ChildNodes.Count());
            Assert.AreEqual <string>("x:a", ((IXtmlElement)document.ChildNodes.ElementAt(2)).QualifiedName);
            Assert.AreEqual <string>("[value0]", ((IXtmlElement)document.ChildNodes.ElementAt(2)).Attributes.ElementAt(0).GetValue(null, null));
            Assert.AreEqual <string>("holder\r\n", document.ChildNodes.ElementAt(2).ChildNodes.ElementAt(0).NodeXtml);
            Assert.AreEqual <string>("y:b", ((IXtmlElement)document.ChildNodes.ElementAt(2).ChildNodes.ElementAt(1)).QualifiedName);
        }
Ejemplo n.º 7
0
        public void LoadTest_MutipleElement()
        {
            string        xtml     = "[?xtml version=\"1.1\" encoding=\"gb2312\" ?]\r\n[a a0=\"&lte;value&lte;0&gte;\"]holder\r\n[b /][/a]holder";
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_option, null);

            Assert.AreEqual <int>(4, document.ChildNodes.Count());
            Assert.AreEqual <string>("a", document.ChildNodes.ElementAt(2).LocalName);
            Assert.AreEqual <string>("[value[0]", ((IXtmlElement)document.ChildNodes.ElementAt(2)).Attributes.ElementAt(0).GetValue(null, null));
            Assert.AreEqual <string>("holder\r\n", document.ChildNodes.ElementAt(2).ChildNodes.ElementAt(0).NodeXtml);
            Assert.AreEqual <string>("b", document.ChildNodes.ElementAt(2).ChildNodes.ElementAt(1).LocalName);
        }
Ejemplo n.º 8
0
        public void LoadTest_NoChildren_HasDeclaration()
        {
            string        xtml     = "[?xtml version=\"1.1\" type=\"text/javascript\" encoding=\"gb2312\" ?]holder占位符holder";
            IXtmlDocument document = TemplateEngine.TemplateSystem.Load(xtml, this.m_option, null);

            Assert.AreEqual <int>(2, document.ChildNodes.Count());
            Assert.AreEqual <string>("1.1", document.Declaration.Version);
            Assert.AreEqual <string>("text/javascript", document.Declaration.Type);
            Assert.AreEqual <string>("gb2312", document.Declaration.Encoding);
            Assert.AreEqual <string>("holder占位符holder", document.ChildNodes.ElementAt(1).NodeXtml);
        }