Пример #1
0
        public void ObjectTemplateDisplaysSimplePropertiesOnObjectByDefault()
        {
            string expected =
                "<div class=\"display-label\">Property1</div>"
                + Environment.NewLine
                + "<div class=\"display-field\">Model = p1, ModelType = System.String, PropertyName = Property1, HtmlFieldName = Property1, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)</div>"
                + Environment.NewLine
                + "<div class=\"display-label\">Property2</div>"
                + Environment.NewLine
                + "<div class=\"display-field\">Model = (null), ModelType = System.String, PropertyName = Property2, HtmlFieldName = Property2, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)</div>"
                + Environment.NewLine;

            // Arrange
            ObjectTemplateModel model = new ObjectTemplateModel
            {
                Property1 = "p1",
                Property2 = null
            };
            HtmlHelper html = MakeHtmlHelper <ObjectTemplateModel>(model);

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(expected, result);
        }
Пример #2
0
        public void EmailAddressTemplateTests()
        {
            Assert.Equal(
                "<a href=\"mailto:[email protected]\">[email protected]</a>",
                DefaultDisplayTemplates.EmailAddressTemplate(MakeHtmlHelper <string>("*****@*****.**"))
                );

            Assert.Equal(
                "<a href=\"mailto:[email protected]\">The FooBar User</a>",
                DefaultDisplayTemplates.EmailAddressTemplate(
                    MakeHtmlHelper <string>("*****@*****.**", "The FooBar User")
                    )
                );

            Assert.Equal(
                "<a href=\"mailto:&lt;script>alert(&#39;XSS!&#39;)&lt;/script>\">&lt;script&gt;alert(&#39;XSS!&#39;)&lt;/script&gt;</a>",
                DefaultDisplayTemplates.EmailAddressTemplate(
                    MakeHtmlHelper <string>("<script>alert('XSS!')</script>")
                    )
                );

            Assert.Equal(
                "<a href=\"mailto:&lt;script>alert(&#39;XSS!&#39;)&lt;/script>\">&lt;b&gt;Encode me!&lt;/b&gt;</a>",
                DefaultDisplayTemplates.EmailAddressTemplate(
                    MakeHtmlHelper <string>("<script>alert('XSS!')</script>", "<b>Encode me!</b>")
                    )
                );
        }
Пример #3
0
        public void HiddenInputTemplateTests()
        {
            Assert.Equal(
                "Hidden Value",
                DefaultDisplayTemplates.HiddenInputTemplate(MakeHtmlHelper <string>("Hidden Value"))
                );

            Assert.Equal(
                "&lt;b&gt;Encode me!&lt;/b&gt;",
                DefaultDisplayTemplates.HiddenInputTemplate(
                    MakeHtmlHelper <string>("<script>alert('XSS!')</script>", "<b>Encode me!</b>")
                    )
                );

            var helperWithInvisibleHtml = MakeHtmlHelper <string>(
                "<script>alert('XSS!')</script>",
                "<b>Encode me!</b>"
                );

            helperWithInvisibleHtml.ViewData.ModelMetadata.HideSurroundingHtml = true;
            Assert.Equal(
                String.Empty,
                DefaultDisplayTemplates.HiddenInputTemplate(helperWithInvisibleHtml)
                );
        }
Пример #4
0
        public void CollectionTemplateUsesRealObjectTypes()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <List <object> >(
                new List <object> {
                1, 2.3, "Hello World"
            }
                );

            html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = null;

            // Act
            string result = DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback);

            // Assert
            Assert.Equal(
                Environment.NewLine
                + "Model = 1, ModelType = System.Int32, PropertyName = (null), HtmlFieldName = [0], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)"
                + Environment.NewLine
                + "Model = 2.3, ModelType = System.Double, PropertyName = (null), HtmlFieldName = [1], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)"
                + Environment.NewLine
                + "Model = Hello World, ModelType = System.String, PropertyName = (null), HtmlFieldName = [2], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)",
                result
                );
        }
Пример #5
0
        public void CollectionTemplateWithMultiItemCollection()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <List <string> >(
                new List <string> {
                "foo", "bar", "baz"
            }
                );

            html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = null;

            // Act
            string result = DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback);

            // Assert
            Assert.Equal(
                Environment.NewLine
                + "Model = foo, ModelType = System.String, PropertyName = (null), HtmlFieldName = [0], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)"
                + Environment.NewLine
                + "Model = bar, ModelType = System.String, PropertyName = (null), HtmlFieldName = [1], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)"
                + Environment.NewLine
                + "Model = baz, ModelType = System.String, PropertyName = (null), HtmlFieldName = [2], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)",
                result
                );
        }
    public void ObjectTemplate_IgnoresPropertiesWith_ScaffoldColumnFalse()
    {
        // Arrange
        var expected = "<div class=\"HtmlEncode[[display-label]]\">HtmlEncode[[Property1]]</div>" + Environment.NewLine +
                       "<div class=\"HtmlEncode[[display-field]]\"></div>" + Environment.NewLine +
                       "<div class=\"HtmlEncode[[display-label]]\">HtmlEncode[[Property3]]</div>" + Environment.NewLine +
                       "<div class=\"HtmlEncode[[display-field]]\"></div>" + Environment.NewLine;

        var model      = new DefaultTemplatesUtilities.ObjectWithScaffoldColumn();
        var viewEngine = new Mock <ICompositeViewEngine>(MockBehavior.Strict);

        viewEngine
        .Setup(v => v.GetView(/*executingFilePath*/ null, It.IsAny <string>(), /*isMainPage*/ false))
        .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty <string>()));
        viewEngine
        .Setup(v => v.FindView(It.IsAny <ActionContext>(), It.IsAny <string>(), /*isMainPage*/ false))
        .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty <string>()));
        var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object);

        // Act
        var result = DefaultDisplayTemplates.ObjectTemplate(htmlHelper);

        // Assert
        Assert.Equal(expected, HtmlContentUtilities.HtmlContentToString(result));
    }
Пример #7
0
        public void ObjectTemplateDisplaysSimpleDisplayTextWhenTemplateDepthGreaterThanOne(
            string text,
            bool htmlEncode,
            string expectedResult
            )
        {
            // Arrange
            ObjectTemplateModel model    = new ObjectTemplateModel();
            HtmlHelper          html     = MakeHtmlHelper <ObjectTemplateModel>(model);
            ModelMetadata       metadata = ModelMetadataProviders.Current.GetMetadataForType(
                () => model,
                typeof(ObjectTemplateModel)
                );

            metadata.SimpleDisplayText = text;
            metadata.HtmlEncode        = htmlEncode;

            html.ViewData.ModelMetadata = metadata;
            html.ViewData.TemplateInfo.VisitedObjects.Add("foo");
            html.ViewData.TemplateInfo.VisitedObjects.Add("bar");

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Пример #8
0
        public void HiddenInputTemplate_HonoursHideSurroundingHtml()
        {
            // Arrange
            var model = "Model string";

            var provider = new TestModelMetadataProvider();

            provider.ForType <string>().DisplayDetails(dd =>
            {
                dd.HideSurroundingHtml = true;
            });

            var html     = DefaultTemplatesUtilities.GetHtmlHelper(model, provider: provider);
            var viewData = html.ViewData;

            var templateInfo = viewData.TemplateInfo;

            templateInfo.HtmlFieldPrefix     = "FieldPrefix";
            templateInfo.FormattedModelValue = "Formatted string";

            // Act
            var result = DefaultDisplayTemplates.HiddenInputTemplate(html);

            // Assert
            Assert.Empty(result);
        }
Пример #9
0
    public static IHtmlContent HiddenInputTemplate(IHtmlHelper htmlHelper)
    {
        var viewData = htmlHelper.ViewData;
        var model    = viewData.Model;

        IHtmlContent display;

        if (viewData.ModelMetadata.HideSurroundingHtml)
        {
            display = null;
        }
        else
        {
            display = DefaultDisplayTemplates.StringTemplate(htmlHelper);
        }

        var htmlAttributesObject = viewData[HtmlAttributeKey];
        var hidden = htmlHelper.Hidden(expression: null, value: model, htmlAttributes: htmlAttributesObject);

        if (viewData.ModelMetadata.HideSurroundingHtml)
        {
            return(hidden);
        }

        return(new HtmlContentBuilder(capacity: 2)
               .AppendHtml(display)
               .AppendHtml(hidden));
    }
Пример #10
0
        public void ObjectTemplateDisplaysSimpleDisplayTextWhenTemplateDepthGreaterThanOne(
            string simpleDisplayText,
            bool htmlEncode,
            string expectedResult)
        {
            // Arrange
            var model = new DefaultTemplatesUtilities.ObjectTemplateModel();

            model.Property1 = simpleDisplayText;

            var provider = new TestModelMetadataProvider();

            provider.ForType <DefaultTemplatesUtilities.ObjectTemplateModel>().DisplayDetails(dd =>
            {
                dd.HtmlEncode            = htmlEncode;
                dd.SimpleDisplayProperty = "Property1";
            });

            var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider);

            html.ViewData.TemplateInfo.AddVisited("foo");
            html.ViewData.TemplateInfo.AddVisited("bar");

            // Act
            var result = DefaultDisplayTemplates.ObjectTemplate(html);

            // Assert
            Assert.Equal(expectedResult, result);
        }
        public void ObjectTemplatePreventsRecursionOnModelTypeForNullModelValues()
        {
            string expected =
                "<div class=\"display-label\">Property2</div>" + Environment.NewLine
                + "<div class=\"display-field\">Model = propValue2, ModelType = System.String, PropertyName = Property2, HtmlFieldName = Property2, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)</div>" + Environment.NewLine;

            // Arrange
            ObjectTemplateModel          model         = new ObjectTemplateModel();
            HtmlHelper                   html          = MakeHtmlHelper <ObjectTemplateModel>(model);
            Mock <ModelMetadataProvider> provider      = new Mock <ModelMetadataProvider>();
            Func <object>                accessor      = () => model;
            Mock <ModelMetadata>         metadata      = new Mock <ModelMetadata>(provider.Object, null, accessor, typeof(ObjectTemplateModel), null);
            ModelMetadata                prop1Metadata = new ModelMetadata(provider.Object, typeof(ObjectTemplateModel), null, typeof(string), "Property1");
            ModelMetadata                prop2Metadata = new ModelMetadata(provider.Object, typeof(ObjectTemplateModel), () => "propValue2", typeof(string), "Property2");

            html.ViewData.ModelMetadata = metadata.Object;
            metadata.Setup(p => p.Properties).Returns(() => new[] { prop1Metadata, prop2Metadata });
            html.ViewData.TemplateInfo.VisitedObjects.Add(typeof(string));

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(expected, result);
        }
        public void BooleanTemplateTests()
        {
            // Boolean values

            Assert.Equal(
                "<input checked=\"checked\" class=\"check-box\" disabled=\"disabled\" type=\"checkbox\" />",
                DefaultDisplayTemplates.BooleanTemplate(MakeHtmlHelper <bool>(true)));

            Assert.Equal(
                "<input class=\"check-box\" disabled=\"disabled\" type=\"checkbox\" />",
                DefaultDisplayTemplates.BooleanTemplate(MakeHtmlHelper <bool>(false)));

            Assert.Equal(
                "<input class=\"check-box\" disabled=\"disabled\" type=\"checkbox\" />",
                DefaultDisplayTemplates.BooleanTemplate(MakeHtmlHelper <bool>(null)));

            // Nullable<Boolean> values

            Assert.Equal(
                "<select class=\"tri-state list-box\" disabled=\"disabled\"><option value=\"\">Not Set</option><option selected=\"selected\" value=\"true\">True</option><option value=\"false\">False</option></select>",
                DefaultDisplayTemplates.BooleanTemplate(MakeHtmlHelper <Nullable <bool> >(true)));

            Assert.Equal(
                "<select class=\"tri-state list-box\" disabled=\"disabled\"><option value=\"\">Not Set</option><option value=\"true\">True</option><option selected=\"selected\" value=\"false\">False</option></select>",
                DefaultDisplayTemplates.BooleanTemplate(MakeHtmlHelper <Nullable <bool> >(false)));

            Assert.Equal(
                "<select class=\"tri-state list-box\" disabled=\"disabled\"><option selected=\"selected\" value=\"\">Not Set</option><option value=\"true\">True</option><option value=\"false\">False</option></select>",
                DefaultDisplayTemplates.BooleanTemplate(MakeHtmlHelper <Nullable <bool> >(null)));
        }
Пример #13
0
        public void ObjectTemplate_HonoursHideSurroundingHtml()
        {
            // Arrange
            var expected =
                "Model = p1, ModelType = System.String, PropertyName = Property1, SimpleDisplayText = p1" +
                "<div class=\"display-label\">Property2</div>" + Environment.NewLine +
                "<div class=\"display-field\">Model = (null), ModelType = System.String, PropertyName = Property2," +
                " SimpleDisplayText = (null)</div>" + Environment.NewLine;

            var model = new DefaultTemplatesUtilities.ObjectTemplateModel {
                Property1 = "p1", Property2 = null
            };

            var provider = new TestModelMetadataProvider();

            provider.ForProperty <DefaultTemplatesUtilities.ObjectTemplateModel>("Property1").DisplayDetails(dd =>
            {
                dd.HideSurroundingHtml = true;
            });

            var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider);

            // Act
            var result = DefaultDisplayTemplates.ObjectTemplate(html);

            // Assert
            Assert.Equal(expected, result);
        }
        public void ObjectTemplateWithShowForDisplayMetadata()
        {
            string expected = @"<div class=""display-label"">Property1</div>
<div class=""display-field"">Model = (null), ModelType = System.String, PropertyName = Property1, HtmlFieldName = Property1, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)</div>
";

            // Arrange
            ObjectTemplateModel          model         = new ObjectTemplateModel();
            HtmlHelper                   html          = MakeHtmlHelper <ObjectTemplateModel>(model);
            Mock <ModelMetadataProvider> provider      = new Mock <ModelMetadataProvider>();
            Func <object>                accessor      = () => model;
            Mock <ModelMetadata>         metadata      = new Mock <ModelMetadata>(provider.Object, null, accessor, typeof(ObjectTemplateModel), null);
            ModelMetadata                prop1Metadata = new ModelMetadata(provider.Object, typeof(ObjectTemplateModel), null, typeof(string), "Property1")
            {
                ShowForDisplay = true
            };
            ModelMetadata prop2Metadata = new ModelMetadata(provider.Object, typeof(ObjectTemplateModel), null, typeof(string), "Property2")
            {
                ShowForDisplay = false
            };

            html.ViewData.ModelMetadata = metadata.Object;
            metadata.Setup(p => p.Properties).Returns(() => new[] { prop1Metadata, prop2Metadata });

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(expected, result);
        }
        public void ObjectTemplateWithDisplayNameMetadata()
        {
            string expected =
                "<div class=\"display-field\">Model = (null), ModelType = System.String, PropertyName = Property1, HtmlFieldName = Property1, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)</div>" + Environment.NewLine
                + "<div class=\"display-label\">Custom display name</div>" + Environment.NewLine
                + "<div class=\"display-field\">Model = (null), ModelType = System.String, PropertyName = Property2, HtmlFieldName = Property2, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)</div>" + Environment.NewLine;

            // Arrange
            ObjectTemplateModel          model         = new ObjectTemplateModel();
            HtmlHelper                   html          = MakeHtmlHelper <ObjectTemplateModel>(model);
            Mock <ModelMetadataProvider> provider      = new Mock <ModelMetadataProvider>();
            Func <object>                accessor      = () => model;
            Mock <ModelMetadata>         metadata      = new Mock <ModelMetadata>(provider.Object, null, accessor, typeof(ObjectTemplateModel), null);
            ModelMetadata                prop1Metadata = new ModelMetadata(provider.Object, typeof(ObjectTemplateModel), null, typeof(string), "Property1")
            {
                DisplayName = String.Empty
            };
            ModelMetadata prop2Metadata = new ModelMetadata(provider.Object, typeof(ObjectTemplateModel), null, typeof(string), "Property2")
            {
                DisplayName = "Custom display name"
            };

            html.ViewData.ModelMetadata = metadata.Object;
            metadata.Setup(p => p.Properties).Returns(() => new[] { prop1Metadata, prop2Metadata });

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(expected, result);
        }
Пример #16
0
 private static IHtmlContent BooleanTemplateDropDownList(IHtmlHelper htmlHelper, bool?value)
 {
     return(htmlHelper.DropDownList(
                expression: null,
                selectList: DefaultDisplayTemplates.TriStateValues(value),
                optionLabel: null,
                htmlAttributes: CreateHtmlAttributes(htmlHelper, "list-box tri-state")));
 }
        public void StringTemplateTests()
        {
            Assert.Equal(
                "Hello, world!",
                DefaultDisplayTemplates.StringTemplate(MakeHtmlHelper <string>("", "Hello, world!")));

            Assert.Equal(
                "&lt;b&gt;Hello, world!&lt;/b&gt;",
                DefaultDisplayTemplates.StringTemplate(MakeHtmlHelper <string>("", "<b>Hello, world!</b>")));
        }
        public void UrlTemplateTests()
        {
            Assert.Equal(
                "<a href=\"http://www.microsoft.com/testing.aspx?value1=foo&amp;value2=bar\">http://www.microsoft.com/testing.aspx?value1=foo&amp;value2=bar</a>",
                DefaultDisplayTemplates.UrlTemplate(MakeHtmlHelper <string>("http://www.microsoft.com/testing.aspx?value1=foo&value2=bar")));

            Assert.Equal(
                "<a href=\"http://www.microsoft.com/testing.aspx?value1=foo&amp;value2=bar\">&lt;b&gt;Microsoft!&lt;/b&gt;</a>",
                DefaultDisplayTemplates.UrlTemplate(MakeHtmlHelper <string>("http://www.microsoft.com/testing.aspx?value1=foo&value2=bar", "<b>Microsoft!</b>")));
        }
        public void HtmlTemplateTests()
        {
            Assert.Equal(
                "Hello, world!",
                DefaultDisplayTemplates.HtmlTemplate(MakeHtmlHelper <string>("", "Hello, world!")));

            Assert.Equal(
                "<b>Hello, world!</b>",
                DefaultDisplayTemplates.HtmlTemplate(MakeHtmlHelper <string>("", "<b>Hello, world!</b>")));
        }
        public void CollectionTemplateNonEnumerableModelThrows()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <object>(new object());

            // Act & Assert
            Assert.Throws <InvalidOperationException>(
                () => DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback),
                "The Collection template was used with an object of type 'System.Object', which does not implement System.IEnumerable."
                );
        }
        public void CollectionTemplateWithNullModel()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <object>(null);

            // Act
            string result = DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback);

            // Assert
            Assert.Equal(String.Empty, result);
        }
        public void ObjectTemplateAllPropertiesFromEntityObjectAreHidden()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <ObjectTemplateModel>(new MyEntityObject());

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(String.Empty, result);
        }
        public void DecimalTemplateTests()
        {
            Assert.Equal(
                String.Format(CultureInfo.CurrentCulture, "{0:0.00}", 12.35M),
                DefaultDisplayTemplates.DecimalTemplate(MakeHtmlHelper <decimal>(12.3456M)));

            Assert.Equal(
                "Formatted Value",
                DefaultDisplayTemplates.DecimalTemplate(MakeHtmlHelper <decimal>(12.3456M, "Formatted Value")));

            Assert.Equal(
                "&lt;script&gt;alert(&#39;XSS!&#39;)&lt;/script&gt;",
                DefaultDisplayTemplates.DecimalTemplate(MakeHtmlHelper <decimal>(12.3456M, "<script>alert('XSS!')</script>")));
        }
        public void DecimalTemplateTests()
        {
            Assert.Equal(
                @"12.35",
                DefaultDisplayTemplates.DecimalTemplate(MakeHtmlHelper <decimal>(12.3456M)));

            Assert.Equal(
                @"Formatted Value",
                DefaultDisplayTemplates.DecimalTemplate(MakeHtmlHelper <decimal>(12.3456M, "Formatted Value")));

            Assert.Equal(
                @"&lt;script&gt;alert(&#39;XSS!&#39;)&lt;/script&gt;",
                DefaultDisplayTemplates.DecimalTemplate(MakeHtmlHelper <decimal>(12.3456M, "<script>alert('XSS!')</script>")));
        }
        public void ObjectTemplateDisplaysNullDisplayTextWhenObjectIsNull()
        {
            // Arrange
            HtmlHelper    html     = MakeHtmlHelper <ObjectTemplateModel>(null);
            ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(ObjectTemplateModel));

            metadata.NullDisplayText    = "(null value)";
            html.ViewData.ModelMetadata = metadata;

            // Act
            string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);

            // Assert
            Assert.Equal(metadata.NullDisplayText, result);
        }
        public void CollectionTemplateWithSingleItemCollectionWithoutPrefix()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <List <string> >(new List <string> {
                "foo"
            });

            html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = null;

            // Act
            string result = DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback);

            // Assert
            Assert.Equal(@"
Model = foo, ModelType = System.String, PropertyName = (null), HtmlFieldName = [0], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)",
                         result);
        }
        public void CollectionTemplateNullItemInStronglyTypedCollectionUsesModelTypeFromIEnumerable()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <List <IHttpHandler> >(new List <IHttpHandler> {
                null
            });

            html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = null;

            // Act
            string result = DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback);

            // Assert
            Assert.Equal(@"
Model = (null), ModelType = System.Web.IHttpHandler, PropertyName = (null), HtmlFieldName = [0], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)",
                         result);
        }
Пример #28
0
        public void ObjectTemplateDisplaysNullDisplayTextWhenObjectIsNull()
        {
            // Arrange
            var html     = DefaultTemplatesUtilities.GetHtmlHelper();
            var metadata =
                new EmptyModelMetadataProvider()
                .GetMetadataForType(null, typeof(DefaultTemplatesUtilities.ObjectTemplateModel));

            metadata.NullDisplayText    = "(null value)";
            html.ViewData.ModelMetadata = metadata;

            // Act
            var result = DefaultDisplayTemplates.ObjectTemplate(html);

            // Assert
            Assert.Equal(metadata.NullDisplayText, result);
        }
        public void CollectionTemplateNullITemInWeaklyTypedCollectionUsesModelTypeOfString()
        {
            // Arrange
            HtmlHelper html = MakeHtmlHelper <ArrayList>(new ArrayList {
                null
            });

            html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = null;

            // Act
            string result = DefaultDisplayTemplates.CollectionTemplate(html, CollectionSpyCallback);

            // Assert
            Assert.Equal(@"
Model = (null), ModelType = System.String, PropertyName = (null), HtmlFieldName = [0], TemplateName = (null), Mode = ReadOnly, TemplateInfo.HtmlFieldPrefix = , AdditionalViewData = (null)",
                         result);
        }
Пример #30
0
        public void HiddenInputTemplate_ReturnsValue()
        {
            // Arrange
            var model        = "Model string";
            var html         = DefaultTemplatesUtilities.GetHtmlHelper(model);
            var templateInfo = html.ViewData.TemplateInfo;

            templateInfo.HtmlFieldPrefix = "FieldPrefix";

            // TemplateBuilder sets FormattedModelValue before calling TemplateRenderer and it's used below.
            templateInfo.FormattedModelValue = "Formatted string";

            // Act
            var result = DefaultDisplayTemplates.HiddenInputTemplate(html);

            // Assert
            Assert.Equal("Formatted string", result);
        }