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); }
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); }
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); }
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); }
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); }
public override void FillDataFromResult(IExecutionResult result, IContentController contentController) { Data = new ListFormElementData(); Data.FillFromExecutionResult(result, contentController); }