Exemplo n.º 1
0
        public void SelectEmpty()
        {
            var data = new ListFormElementData() as IFormElementData;
            var cut  = RenderComponent <Select>(
                CascadingValue(data),
                CascadingValue(new EditContext(data)));

            var selects     = cut.FindAll("div.mdc-select");
            var selected    = cut.FindAll("div.mdc-select > div > div.mdc-select__selected-text");
            var options     = cut.FindAll("li");
            var labels      = cut.FindAll("span.mdc-floating-label");
            var helpertexts = cut.FindAll("p.mdc-text-field-helper-text");
            var errors      = cut.FindAll("div.validation-message");

            Assert.Single(selects);
            var select = selects[0];

            Assert.NotNull(select);
            Assert.Null(select.Id);
            Assert.Single(selected);
            Assert.Empty(options);
            Assert.Null(select.Attr("aria-label"));
            Assert.DoesNotContain("mdc-select--disabled", select.ClassName);
            Assert.Empty(labels);
            Assert.Single(helpertexts);//not the hint
            Assert.Empty(errors);
        }
Exemplo n.º 2
0
        public void HasCorrectParts()
        {
            var data = new ListFormElementData
            {
                Label    = "_",
                HintText = "_",
                Value    = "",
                Options  = new Dictionary <string, string>
                {
                    { "", "" },
                    { "A", "ListOptionA" },
                    { "B", "ListOptionB" },
                    { "C", "ListOptionC" },
                    { "D", "ListOptionD" }
                }
            } as IFormElementData;

            data.CustomValidate();
            Validator.TryValidateObject(data, new ValidationContext(data), null);
            var cut = RenderComponent <Select>(
                CascadingValue(data),
                CascadingValue(new EditContext(data)));

            Assert.NotEmpty(data.ErrorText);
            Assert.False(data.IsValid);

            var select = cut.FindAll("div.mdc-select");

            Assert.NotNull(select);
            var options = cut.FindAll("li");

            Assert.Equal(5, options.Count);
            var label = cut.Find("div > div > span.mdc-floating-label");

            Assert.NotNull(label);
            var helpertexts = cut.FindAll("p.mdc-text-field-helper-text");

            Assert.Equal(2, helpertexts.Count);
            //var errorContent = cut.Find("p > div");
            //Assert.NotNull(errorContent);
            //Assert.Equal("validation-message", hint.ClassName);

            //check order
            var div = cut.Find("div.mdc-select");

            Assert.Equal("div", div.FirstChild().NodeName.ToLower());
            Assert.Equal("i", div.FirstChild().FirstChild().NodeName.ToLower());
            Assert.Equal("div", div.FirstChild().FirstChild().NextElement().NodeName.ToLower());
            Assert.Equal("span", div.FirstChild().FirstChild().NextElement().NextElement().NodeName.ToLower());
            Assert.Equal("div", div.FirstChild().FirstChild().NextElement().NextElement().NextElement().NodeName.ToLower());
            Assert.Equal("mdc-floating-label", div.FirstChild().FirstChild().NextElement().NextElement().ClassName);
            Assert.Equal("div", div.FirstChild().NextElement().NodeName.ToLower());
            Assert.Equal("ul", div.FirstChild().NextElement().FirstChild().NodeName.ToLower());
            Assert.Equal("li", div.FirstChild().NextElement().FirstChild().FirstChild().NodeName.ToLower());
            Assert.Equal("p", div.NextElement().NodeName.ToLower());
            Assert.Equal("p", div.NextElement().NextElement().NodeName.ToLower());
            //Assert.Equal("div", top.NextElement().NextElement().FirstChild().NodeName);
            //Assert.Equal("validation-message", top.NextElement().NextElement().FirstChild().ClassName);
        }
Exemplo n.º 3
0
        public void SelectFilled()
        {
            var data = new ListFormElementData
            {
                IsDisabled = true,
                Name       = "TheName",
                Label      = "TheLabel",
                HintText   = "TheHint",
                Options    = new Dictionary <string, string>
                {
                    { "A", "ListOptionA" },
                    { "B", "ListOptionB" },
                    { "C", "ListOptionC" },
                    { "D", "ListOptionD" }
                }
            } as IFormElementData;
            var cut = RenderComponent <Select>(
                CascadingValue(data),
                CascadingValue(new EditContext(data)));

            var selects     = cut.FindAll("div.mdc-select");
            var selected    = cut.FindAll("div.mdc-select > div > div.mdc-select__selected-text");
            var options     = cut.FindAll("li");
            var labels      = cut.FindAll("span.mdc-floating-label");
            var helpertexts = cut.FindAll("p.mdc-text-field-helper-text");

            Assert.Single(selects);
            var select = selects[0];

            Assert.NotNull(select);
            Assert.Equal("TheName", select.Id);
            Assert.Single(selected);
            //selecting the value doesn't work since that is a javascript triggered event
            Assert.Equal(4, options.Count);
            Assert.Equal("ListOptionA", options[0].InnerHtml.Trim());
            Assert.Equal("A", options[0].Attr("data-value"));
            Assert.Equal("ListOptionB", options[1].InnerHtml.Trim());
            Assert.Equal("B", options[1].Attr("data-value"));
            Assert.Equal("ListOptionC", options[2].InnerHtml.Trim());
            Assert.Equal("C", options[2].Attr("data-value"));
            Assert.Equal("ListOptionD", options[3].InnerHtml.Trim());
            Assert.Equal("D", options[3].Attr("data-value"));
            Assert.Contains("mdc-select--disabled", select.ClassName);
            Assert.Single(labels);
            Assert.Equal("TheLabel", labels[0].InnerHtml);
            Assert.Equal(2, helpertexts.Count);
            Assert.Equal("TheHint", helpertexts[0].InnerHtml);
        }
Exemplo n.º 4
0
        public void ShouldDefineOptions()
        {
            var moqExecutionResult   = InitMoqExecutionResult();
            var moqContentController = InitMoqContentController();

            var sut = new ListFormElementData();

            sut.DefineOptions(moqExecutionResult.Object, moqContentController.Object);

            Assert.Equal(3, sut.Options.Count);
            Assert.Equal("optie1", sut.Options.ToList()[0].Key);
            Assert.Equal("Optie1", sut.Options.ToList()[0].Value);
            Assert.Equal("optie2", sut.Options.ToList()[1].Key);
            Assert.Equal("Optie2", sut.Options.ToList()[1].Value);
            Assert.Equal("optie3", sut.Options.ToList()[2].Key);
            Assert.Equal("Optie3", sut.Options.ToList()[2].Value);
        }
Exemplo n.º 5
0
        public void ShouldDoTwoWayBinding()
        {
            var data = new ListFormElementData
            {
                Options = new Dictionary <string, string>
                {
                    { "A", "ListOptionA" },
                    { "B", "ListOptionB" },
                    { "C", "ListOptionC" },
                    { "D", "ListOptionD" }
                }
            } as IFormElementData;
            var cut = RenderComponent <Select>(
                CascadingValue(data),
                CascadingValue(new EditContext(data)));

            var select = cut.Find("div.mdc-select");
            //selecting the value doesn't work since that is a javascript triggered event
            //select.Change("A");
            //Assert.Equal("A", cut.Instance.Data.Value);
            //select.Change("C");
            //Assert.Equal("C", cut.Instance.Data.Value);
        }
Exemplo n.º 6
0
 public override void FillDataFromResult(IExecutionResult result, IContentController contentController)
 {
     Data = new ListFormElementData();
     Data.FillFromExecutionResult(result, contentController);
 }