Пример #1
0
        public void TestHtmlOptionsWithInvalidData()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("SelectedValue", new { Age = new { Value = 2 } });
            bag.Add("Values", new[] {
                new SimpleObject {
                    Age = 1, Name = "One"
                },
                new SimpleObject {
                    Age = 2, Name = "Two"
                },
                new SimpleObject {
                    Age = 3, Name = "Three"
                },
                new SimpleObject {
                    Age = 4, Name = "Four"
                },
                new SimpleObject {
                    Age = 5, Name = "Five"
                }
            });

            string select = ImpressionEngine.Create(bag).RunString("<select>{{Valuesx|html_options(xyz,abc,def)}}</select>");
        }
Пример #2
0
        public void TestForEachWithNoItems()
        {
            PropertyBag bag = new PropertyBag();

            bag["y"] = new int[0];
            string result = ImpressionEngine.Create(bag).RunString("<!-- #FOREACH {{ x in y }} -->{{x.Position}}<!-- #NEXT -->");
        }
Пример #3
0
        public void TestHtmlOptions()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("SelectedValue", new { Age = new { Value = 2 } });
            bag.Add("Values", new[] {
                new SimpleObject {
                    Age = 1, Name = "One"
                },
                new SimpleObject {
                    Age = 2, Name = "Two"
                },
                new SimpleObject {
                    Age = 3, Name = "Three"
                },
                new SimpleObject {
                    Age = 4, Name = "Four"
                },
                new SimpleObject {
                    Age = 5, Name = "Five"
                }
            });

            string select = ImpressionEngine.Create(bag).RunString("<select>{{Values|html_options(Name,Age,SelectedValue.Age.Value)}}</select>");

            Assert.AreEqual("<select><option value=\"1\">One</option><option value=\"2\" selected=\"true\">Two</option><option value=\"3\">Three</option><option value=\"4\">Four</option><option value=\"5\">Five</option></select>", select);
        }
Пример #4
0
        public void Test2DeepExpression()
        {
            PropertyBag bag = new PropertyBag();

            var o1 = new SimpleObject {
                Age      = 1,
                Children = new List <SimpleObject> {
                    new SimpleObject {
                        Age      = 2,
                        Children = new List <SimpleObject> {
                            new SimpleObject {
                                Age = 3
                            }
                        }
                    }
                }
            };

            bag.Add("Value", o1);

            var imp    = ImpressionEngine.Create(bag);
            var result = imp.RunString("{{value.firstchild.firstchild.age}}");

            Assert.AreEqual("3", result);
        }
Пример #5
0
        public void TestNestedForLoops()
        {
            PropertyBag bag   = new PropertyBag();
            var         items = new List <SimpleObject> {
                new SimpleObject {
                    Name = "Item 1"
                },
                new SimpleObject {
                    Name     = "Item 2",
                    Children = new List <SimpleObject> {
                        new SimpleObject {
                            Name = "Item 2-1"
                        },
                        new SimpleObject {
                            Name = "Item 2-2"
                        }
                    }
                }
            };

            bag["Items"] = items;
            string result = ImpressionEngine.Create(bag).RunString(
                "<!-- #FOREACH {{ item in items }} -->{{item.Name}}<!-- #FOREACH {{ subitem in item.children }} -->{{subitem.name}}<!-- #NEXT --><!-- #NEXT -->"
                );

            Assert.IsNotNull(result);
            Assert.AreEqual("Item 1Item 2Item 2-1Item 2-2", result);
        }
Пример #6
0
        public void TestObjectPropertiesAreCaseInsensitive()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("UPPERCASE", new SimpleObject()
            {
                Name = "Name"
            });
            bag.Add("lowercase", new SimpleObject()
            {
                Field = "Name"
            });
            bag.Add("camelCase", new SimpleObject()
            {
                Property = "Name"
            });
            bag.Add("PascalCase", new Dictionary <string, string> {
                { "Key", "Name" }
            });

            ImpressionEngine ie     = ImpressionEngine.Create(bag);
            string           result = ie.RunString("{{uppercase.NAME}},{{LOWERCASE.field}},{{CAMELcase.PROPERTy}},{{pascalCASE.kEY}}");

            Assert.AreEqual(
                "Name,Name,Name,Name",
                result
                );
        }
Пример #7
0
        public void TestShuffle()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("Values", new[] {
                new SimpleObject {
                    Age = 1, Name = "One"
                },
                new SimpleObject {
                    Age = 2, Name = "Two"
                },
                new SimpleObject {
                    Age = 3, Name = "Three"
                },
                new SimpleObject {
                    Age = 4, Name = "Four"
                },
                new SimpleObject {
                    Age = 5, Name = "Five"
                }
            });

            string result = ImpressionEngine.Create(bag).RunString("<!-- #FOREACH {{ x in Values | shuffle }} -->{{x.Name}}<!-- #NEXT -->");

            Assert.AreNotEqual("OneTwoThreeFourFive", result);
            string result2 = ImpressionEngine.Create(bag).RunString("<!-- #FOREACH {{ x in Values | shuffle }} -->{{x.Name}}<!-- #NEXT -->");

            Assert.AreNotEqual(result, result2);
        }
Пример #8
0
        public override void Setup()
        {
            base.Setup();
            _now = DateTime.Now;
            Bag.Add("now", _now);

            Engine = ImpressionEngine.Create(Bag);
        }
Пример #9
0
        public void TestNullReturns0()
        {
            Bag.Add("en", null);
            Engine = ImpressionEngine.Create(Bag);
            var result = Engine.RunString("{{en|count}}");

            Assert.AreEqual("0", result);
        }
Пример #10
0
        public void TestEmptyEnumerableReturns0()
        {
            Bag.Add("en", new int[0]);
            Engine = ImpressionEngine.Create(Bag);
            var result = Engine.RunString("{{en|count}}");

            Assert.AreEqual("0", result);
        }
Пример #11
0
        public void TestEnumerableWith1ItemReturns1()
        {
            Bag.Add("en", new [] { 1 });
            Engine = ImpressionEngine.Create(Bag);
            var result = Engine.RunString("{{en|count}}");

            Assert.AreEqual("1", result);
        }
Пример #12
0
        public void DummyTemplateTest_BadlyFormedTemplate()
        {
            string           currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string           templatePath  = Path.Combine(currentFolder, "../templates/badlyformed.htm");
            ImpressionEngine ie            = ImpressionEngine.Create(templatePath);
            string           result        = ie.Run();

            Assert.IsNotNull(result);
        }
Пример #13
0
        public void TestIFAttribute()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("TrueValue", true);
            bag.Add("FalseValue", false);

            string result = ImpressionEngine.Create(bag).RunString("<h1 style=\"{{TrueValue|if('','display:none')}}\">Heading</h1>");
        }
Пример #14
0
        public void TestBasicExtends()
        {
            string           currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string           templatePath  = Path.Combine(currentFolder, "../templates/extends-content.htm");
            ImpressionEngine ie            = ImpressionEngine.Create(templatePath);
            string           result        = ie.Run();

            Assert.AreEqual("\r\nEXTENDED\r\n\r\nLayout Content\r\n\r\n\t<h3>EXTENDED</h3>\r\n\r\nMore Layout Content\r\n\r\n<div id=\"footer\">Layout Footer</div>\r\n\r\n", result);
        }
Пример #15
0
        public void DummyTemplateTest_SimpleSSI()
        {
            string           currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string           templatePath  = Path.Combine(currentFolder, "../templates/simplessi.htm");
            ImpressionEngine ie            = ImpressionEngine.Create(templatePath);
            string           result        = ie.Run();

            Assert.AreEqual("This page will load SSI Content", result);
        }
Пример #16
0
        public void ForEachWithPositionTest()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("strings", new[] { "One", "Two", "Three" });
            ImpressionEngine ie = ImpressionEngine.Create(bag);
            string           s  = ie.RunString("<!-- #FOREACH {{string in strings}} -->{{string.Position}}={{string}}<!-- #NEXT -->");

            Assert.AreEqual(s, "1=One2=Two3=Three");
        }
Пример #17
0
        public void TestEnumerableWith5ItemsReturns5()
        {
            var obj = new [] { 1, 2, 3, 4, 5 };

            Bag.Add("en", obj);
            Engine = ImpressionEngine.Create(Bag);
            var result = Engine.RunString("{{en|count}}");

            Assert.AreEqual("5", result);
        }
Пример #18
0
        public void CanParseVarTags()
        {
            IPropertyBag bag = new PropertyBag();

            bag.Add("list", new [] { "Tom", "Dick", "Harry" });
            ImpressionEngine ie = ImpressionEngine.Create(bag);
            var result          = ie.RunString("<!-- #VAR {{ list2 = list }} -->{{list2}}");

            Assert.AreEqual(bag["list"].GetType().ToString(), result);
        }
Пример #19
0
        public void DummyTemplateTest_SimpleIfElseIfElseEndIf()
        {
            string           currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string           templatePath  = Path.Combine(currentFolder, "../templates/simpleifelseifelseendif.htm");
            ImpressionEngine ie            = ImpressionEngine.Create(templatePath);

            ie.AddItem("TrueValue", true);
            string result = ie.Run();

            Assert.AreEqual("TrueValue", result);
        }
Пример #20
0
        public void DummyTemplateTest_SimpleForEach()
        {
            string           currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string           templatePath  = Path.Combine(currentFolder, "../templates/SimpleForEach.htm");
            ImpressionEngine ie            = ImpressionEngine.Create(templatePath);

            ie.AddItem("Numbers", new [] { 1, 2, 3, 4, 5 });
            string result = ie.Run();

            Assert.AreEqual("12345", result);
        }
Пример #21
0
        public void TestSpacingWithFilters()
        {
            PropertyBag bag = new PropertyBag();

            ImpressionEngine ie     = ImpressionEngine.Create(bag);
            string           result = ie.RunString("{{ truevalue | default('true') }}");

            Assert.AreEqual("true", result);

            result = ie.RunString("{{truevalue|default('true')}}");
            Assert.AreEqual("true", result);
        }
Пример #22
0
        public void DummyTemplateTest_DefaultFormatter()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("DefaultValue", 1234);

            ImpressionEngine ie     = ImpressionEngine.Create(bag);
            string           result = ie.RunString("{{ InvalidField | default(DefaultValue) }}");

            Assert.IsNotNull(result);
            Assert.AreEqual("1234", result);
        }
Пример #23
0
        public void DummyTemplateTest_HtmlCheckedFormatter()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("TrueValue", true);
            bag.Add("FalseValue", false);

            ImpressionEngine ie = ImpressionEngine.Create(bag);

            Assert.AreEqual("checked=\"checked\"", ie.RunString("{{ TrueValue | html_checked }}"));
            Assert.AreEqual("", ie.RunString("{{ FalseValue | html_checked }}"));
        }
Пример #24
0
        public void TestNotEnumerableReturns1()
        {
            Bag.Add("en", new DateTime());
            Engine = ImpressionEngine.Create(Bag);
            var result = Engine.RunString("{{en|count}}");

            Assert.AreEqual("1", result);

            Bag.Add("en", 5);
            Engine = ImpressionEngine.Create(Bag);
            result = Engine.RunString("{{en|count}}");
            Assert.AreEqual("1", result);
        }
Пример #25
0
        private void LoadMeUp1()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("One", 1);
            bag.Add("Two", 2);
            bag.Add("Three", 3);
            bag.Add("Four", 4);
            bag.Add("Five", 5);
            string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string templatePath  = Path.Combine(currentFolder, "../templates/SimpleIfElseIfElseEndIf.htm");

            ImpressionEngine.Create(bag).Run(templatePath);
            count--;
        }
Пример #26
0
        public void TestObjectNameIsCaseInsensitive()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("UPPERCASE", "UPPERCASE");
            bag.Add("lowercase", "LOWERCASE");
            bag.Add("camelCase", "CAMELCASE");
            bag.Add("PascalCase", "PASCALCASE");
            ImpressionEngine ie = ImpressionEngine.Create(bag);

            string result = ie.RunString("{{uppercase}},{{LOWERCASE}},{{CAMELcase}},{{pascalCASE}}");

            Assert.AreEqual(
                "UPPERCASE,LOWERCASE,CAMELCASE,PASCALCASE",
                result
                );
        }
Пример #27
0
        public void TestHtmlCheckbox()
        {
            PropertyBag bag = new PropertyBag();

            bag.Add("TrueValue", true);
            bag.Add("FalseValue", false);

            string result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{TrueValue|html_checked}} />");

            Assert.AreEqual("<input type=\"checkbox\" checked=\"checked\" />", result);

            result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{FalseValue|html_checked}} />");
            Assert.AreEqual("<input type=\"checkbox\"  />", result);

            result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{UnknownValue|html_checked}} />");
            Assert.AreEqual("<input type=\"checkbox\"  />", result);

            result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{UnknownValue|not|html_checked}} />");
            Assert.AreEqual("<input type=\"checkbox\" checked=\"checked\" />", result);

            result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{UnknownValue|default('true')|html_checked}} />");
            Assert.AreEqual("<input type=\"checkbox\" checked=\"checked\" />", result);
        }
Пример #28
0
        private long RunStressTests(ITemplateCache templateCache)
        {
            long started = DateTime.Now.Ticks;

            string           currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory);
            string           templatePath  = Path.Combine(currentFolder, "../hbmx/storefront.template.html");
            ImpressionEngine ie            = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/contact.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/account.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/productlist-category.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/custompage.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/product.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/cart.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/yourinfo.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            templatePath = Path.Combine(currentFolder, "../hbmx/payment.template.html");
            ie           = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache);

            long elapsed = DateTime.Now.Ticks - started;

            return(elapsed);
        }
Пример #29
0
 public virtual void Setup()
 {
     Bag = new PropertyBag();
     Engine = ImpressionEngine.Create(Bag);
 }
Пример #30
0
 virtual public void Setup()
 {
     Bag    = new PropertyBag();
     Engine = ImpressionEngine.Create(Bag);
 }
Пример #31
0
 public void ConstructorTest_InvalidTemplatePathExpectArgumentException()
 {
     ImpressionEngine ie = ImpressionEngine.Create("xxxx");
 }