public void MetadataControlResolver_AttributeNames_ActiveProperties()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            var tagNameHierarchy = new List <string>()
            {
                "html"
            };
            bool combineWithHtmlCompletions;
            var  completions =
                resolver.GetControlAttributeNames(context, tagNameHierarchy, out combineWithHtmlCompletions)
                .Concat(resolver.GetAttachedPropertyNames(context))
                .ToList();

            Assert.IsTrue(combineWithHtmlCompletions);
            Assert.IsTrue(completions.Any(c => c.CompletionText == "DataContext"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "Visible"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "Validate.Enabled"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "Validate.Target"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "RenderSettings.Mode"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "PostBack.Update"));

            Assert.IsTrue(completions.Any(c => c.CompletionText == "ValidationMessage.ValidatedValue"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "ValidationMessage.HideWhenValid"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "ValidationMessage.InvalidCssClass"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "ValidationMessage.SetToolTipText"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "ValidationMessage.ShowErrorMessageText"));
        }
        public void MetadataControlResolver_ReloadAllControls()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            Assert.IsTrue(allControls.Any(c => c.DisplayText == "dot:TextBox"));
        }
        public void MetadataControlResolver_ReloadAllControls_PropertyMetadata()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            var repeater = allControls.FirstOrDefault(c => c.DisplayText == "dot:Repeater");

            var itemTemplateProperty =
                resolver.GetMetadata("dot:Repeater").Properties.FirstOrDefault(p => p.Name == "ItemTemplate");

            Assert.IsTrue(itemTemplateProperty.IsTemplate);
            Assert.IsTrue(itemTemplateProperty.IsElement);
        }
        public void MetadataControlResolver_ElementNames_ControlWithoutContent()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            var tagNameHierarchy = new List <string>()
            {
                "html", "body", "dot:TextBox"
            };
            var completions = resolver.GetElementNames(context, tagNameHierarchy).ToList();

            Assert.IsTrue(completions.Count == 0);
        }
        public void MetadataControlResolver_ElementNames_DefaultContentPropertySpecified()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            var tagNameHierarchy = new List <string>()
            {
                "html", "body", "dot:Repeater", "ItemTemplate"
            };
            var completions = resolver.GetElementNames(context, tagNameHierarchy).ToList();

            Assert.IsFalse(completions.Any(c => c.CompletionText == "ItemTemplate"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "dot:Button"));
        }
        public void MetadataControlResolver_ElementNames_TypedCollectionProperty()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            var tagNameHierarchy = new List <string>()
            {
                "html", "body", "dot:GridView", "Columns"
            };
            var completions = resolver.GetElementNames(context, tagNameHierarchy).ToList();

            Assert.IsFalse(completions.Any(c => c.CompletionText == "dot:Button"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "dot:GridViewTextColumn"));
            Assert.IsTrue(completions.Any(c => c.CompletionText == "dot:GridViewTemplateColumn"));
        }
        public void MetadataControlResolver_ElementContext_Control()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            ControlMetadata         control;
            ControlPropertyMetadata property;

            resolver.GetElementContext(new List <string>()
            {
                "html", "body", "dot:Button"
            }, out control, out property);

            Assert.IsNotNull(control);
            Assert.IsNull(property);
        }
        public void MetadataControlResolver_ElementContext_AttributeProperty()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            ControlMetadata         control;
            ControlPropertyMetadata property;

            resolver.GetElementContext(new List <string>()
            {
                "html", "body", "dot:Repeater", "WrapperTagName"
            },
                                       out control, out property);

            Assert.IsNotNull(control);
            Assert.IsNull(property); // the property cannot be used as element
        }
        public void MetadataControlResolver_ElementContext_HtmlGenericControl()
        {
            TestInit();

            var resolver    = new MetadataControlResolver();
            var allControls = resolver.ReloadAllControls(context);

            ControlMetadata         control;
            ControlPropertyMetadata property;

            resolver.GetElementContext(new List <string>()
            {
                "html"
            }, out control, out property);

            Assert.IsNotNull(control);
            Assert.IsNull(property);

            Assert.IsTrue(control.Properties.Any(p => p.Name == "Visible"));
            Assert.IsTrue(control.Properties.Any(p => p.Name == "DataContext"));
        }