private static JsArray <Property> ParseEvents(HtmlTableElement tbl) { var list = new JsArray <Property>(); var trs = tbl.ToJQuery().find("> tbody > tr"); foreach (var tr in trs) { var cells = tr.ToJQuery().children("td"); var sig = cells[0].ToJQuery().text().RemoveWhitespace(); var type = cells[1].ToJQuery().text().RemoveWhitespace(); var desc = cells[2].ToJQuery().text(); if (type.Contains("None")) { type = "JsAction"; } else { type = "JsAction<" + type + ">"; } var name = sig; var me = new Property { Name = name, Type = new Class { Name = type }, Description = desc, }; list.push(me); } return(list); }
public void ClickOnTemplateButton() { HtmlPage page = new HtmlPage(); page.Navigate("DataControls.aspx"); HtmlElement refreshLabel = page.Elements.Find("UpdatePanelRefreshLabel"); // verify initial state (note that we don't need to refresh the innertext) HtmlTableElement gridView = (HtmlTableElement)page.Elements.Find("CoursesGridView"); HtmlElement templateField = gridView.TBody.ChildElements[1].ChildElements[9]; Assert.AreEqual("0", templateField.GetInnerTextRecursively().Trim()); //page templateField.ChildElements.Find("input", 0).Click(); refreshLabel.WaitForInnerText("UpdatePanel Refresh #:1", 10); // verify sort operation (we are going to just go and get the inner text) Assert.AreEqual("1000", templateField.GetInnerTextRecursively().Trim()); // revert data back to original state templateField.ChildElements.Find("input", 1).Click(WaitFor.Postback); Assert.AreEqual("0", templateField.GetInnerTextRecursively().Trim()); }
private static JsArray <Property> ParseConstants(HtmlTableElement tbl) { var list = new JsArray <Property>(); var trs = tbl.ToJQuery().find("tbody > tr"); foreach (var tr in trs) { var cells = tr.ToJQuery().children("td"); var name = cells[0].ToJQuery().text().RemoveWhitespace(); var type = "object"; var desc = cells[1].ToJQuery().text(); var me = new Property { Name = name, Type = new Class { Name = type }, Description = desc, IsStatic = true, }; list.push(me); } return(list); }
public void RowsAreRefreshedWhenTBodyIsRefreshed() { MockCommandExecutor commandExecutor = new MockCommandExecutor(); _commandExecutorFactory.Setup(m => m.CreateBrowserCommandExecutor(It.IsAny <string>(), It.IsAny <HtmlPage>())).Returns(commandExecutor); var testPage = new HtmlPage(); string html = @" <html id='control1'> <table id='MyTable'> <tbody> <tr>First</tr> <tr>Second</tr> </tbody> </table> </html> "; commandExecutor.SetBrowserInfo(new LTAF.Engine.BrowserInfo() { Data = @"<tbody> <tr>First Refreshed</tr> <tr>Second Refreshed</tr> </tbody>" }); HtmlElement element = HtmlElement.Create(html, testPage, false); HtmlTableElement table = (HtmlTableElement)element.ChildElements.Find("MyTable"); table.TBody.ChildElements.Refresh(); UnitTestAssert.AreEqual(2, table.Rows.Count); UnitTestAssert.AreEqual("First Refreshed", table.Rows[0].CachedInnerText); UnitTestAssert.AreEqual("Second Refreshed", table.Rows[1].CachedInnerText); }
public void GridViewEditTest() { HtmlPage page = new HtmlPage(); LoginAndGoToHome(page); // Build the expected grades that are going to be set Random rand = new Random(DateTime.Now.Second); string grade1 = rand.Next(100).ToString(); string grade2 = rand.Next(100).ToString(); string grade3 = rand.Next(100).ToString(); // Get the gridview table HtmlTableElement gridView = (HtmlTableElement)page.Elements.Find("CoursesGridView"); // Go to edit mode gridView.Rows[1].Cells[1].ChildElements[0].Click(WaitFor.AsyncPostback); // Fill the textboxes gridView.ChildElements.Refresh(); gridView.Rows[1].Cells[6].ChildElements[0].SetText(grade1); gridView.Rows[1].Cells[7].ChildElements[0].SetText(grade2); gridView.Rows[1].Cells[8].ChildElements[0].SetText(grade3); // Click update button gridView.Rows[1].Cells[1].ChildElements[0].Click(WaitFor.AsyncPostback); // Verify new values gridView.ChildElements.Refresh(); Assert.AreEqual(grade1, gridView.Rows[1].Cells[6].CachedInnerText); Assert.AreEqual(grade2, gridView.Rows[1].Cells[7].CachedInnerText); Assert.AreEqual(grade3, gridView.Rows[1].Cells[8].CachedInnerText); }
public void NoRowsAreReturnedWhenTBodyIsNotThre() { string html = @" <html id='control1'> <table id='MyTable'> </table> </html> "; HtmlElement element = HtmlElement.Create(html); HtmlTableElement table = (HtmlTableElement)element.ChildElements.Find("MyTable"); UnitTestAssert.AreEqual(0, table.Rows.Count); }
public TestGridView(HtmlElement tableElement, bool waitForPostbackAfterClicks) { if (waitForPostbackAfterClicks) { _waitForAfterClicks = WaitFor.Postback; } if (tableElement is HtmlTableElement) { _table = (HtmlTableElement)tableElement; } else { throw new WebTestException("This control can only wrap an element of type HtmlTableElement."); } }
public void GridViewSortTest() { HtmlPage page = new HtmlPage(); LoginAndGoToHome(page); // Get the gridview table HtmlTableElement gridView = (HtmlTableElement)page.Elements.Find("CoursesGridView"); // Sort by name gridView.Rows[0].Cells[4].ChildElements[0].Click(WaitFor.AsyncPostback); // Verify sort operation Assert.AreEqual("Course Name #17", gridView.Rows[10].Cells[4].GetInnerText()); }
public void GridViewPagingTest() { HtmlPage page = new HtmlPage(); LoginAndGoToHome(page); // Get the gridview table HtmlTableElement gridView = (HtmlTableElement)page.Elements.Find("CoursesGridView"); // Verify current last entry Assert.AreEqual("Course Name #9", gridView.Rows[10].Cells[4].GetInnerText()); // Go to page two gridView.Rows[11].ChildElements.Find("a", 0).Click(WaitFor.AsyncPostback); // Verify current last entry Assert.AreEqual("Course Name #19", gridView.Rows[10].Cells[4].GetInnerText()); }
public void EditDataTest() { HtmlPage page = new HtmlPage(); page.Navigate("DataControls.aspx"); HtmlElement refreshLabel = page.Elements.Find("span", 1); HtmlTableElement gridView = (HtmlTableElement)page.Elements.Find("CoursesGridView"); string originalString = gridView.TBody.ChildElements[3].ChildElements[6].GetInnerText(); Assert.AreEqual("0", originalString.Trim()); // click on edit link gridView.ChildElements.Find("a", "Edit", 2).Click(); refreshLabel.WaitForInnerText("UpdatePanel Refresh #:1", 10); // refresh only the gridview elements gridView.ChildElements.Refresh(); // click on the checkbox gridView.ChildElements.Find("ctl04.*CheckBox1", MatchMethod.Regex).Click(); // fill the textboxes (we are going to do it by traversing the dom just for fun) gridView.TBody.ChildElements[3].ChildElements[6].ChildElements.Find("input", 0).SetText("112233"); // click update link gridView.ChildElements.Find("a", "ReadyToUpdateRow", 0).Click(); refreshLabel.WaitForInnerText("UpdatePanel Refresh #:2", 10); // verify gridview updated find table -> tobdy -> 4th row -> 7th cell gridView.ChildElements.Refresh(); string updatedString = gridView.TBody.ChildElements[3].ChildElements[6].GetInnerText(); Assert.AreEqual("112233", updatedString.Trim()); // revert data back to original state gridView.ChildElements.Find("a", "Edit", 2).Click(); refreshLabel.WaitForInnerText("UpdatePanel Refresh #:3", 10); gridView.TBody.ChildElements[3].ChildElements[6].ChildElements.Find("input", 0).SetText("0"); gridView.ChildElements.Find("a", "ReadyToUpdateRow", 0).Click(); refreshLabel.WaitForInnerText("UpdatePanel Refresh #:4", 10); Assert.AreEqual("0", gridView.TBody.ChildElements[3].ChildElements[6].GetInnerText()); }
public void TwoRowsAreReturned() { string html = @" <html id='control1'> <table id='MyTable'> <tbody> <tr>First</tr> <tr>Second</tr> </tbody> </table> </html> "; HtmlElement element = HtmlElement.Create(html); HtmlTableElement table = (HtmlTableElement)element.ChildElements.Find("MyTable"); UnitTestAssert.AreEqual(2, table.Rows.Count); UnitTestAssert.AreEqual("First", table.Rows[0].CachedInnerText); UnitTestAssert.AreEqual("Second", table.Rows[1].CachedInnerText); }
public void PagingTest() { HtmlPage page = new HtmlPage(); page.Navigate("DataControls.aspx"); HtmlElement refreshLabel = page.Elements.Find("UpdatePanelRefreshLabel"); // verify initial state HtmlTableElement gridView = (HtmlTableElement)page.Elements.Find("CoursesGridView"); HtmlElement elementToVerify = gridView.TBody.ChildElements[1].ChildElements[4]; Assert.AreEqual("Course Name #0", elementToVerify.GetInnerText().Trim()); //page gridView.ChildElements.Find("a", "2", 0).Click(); refreshLabel.WaitForInnerText("UpdatePanel Refresh #:1", 10); // verify sort operation (we are going to just go and get the inner text) Assert.AreEqual("Course Name #10", elementToVerify.GetInnerText()); }
private static JsArray <Method> ParseMethods(HtmlTableElement tbl, bool isCtor) { var list = new JsArray <Method>(); var trs = tbl.ToJQuery().find("> tbody > tr"); foreach (var tr in trs) { var cells = tr.ToJQuery().children("td"); var sig = cells[0].ToJQuery().text().RemoveWhitespace(); JsString type; JsString desc; if (isCtor) { type = ""; desc = cells[1].ToJQuery().text(); } else { type = cells[1].ToJQuery().text().RemoveWhitespace(); desc = cells[2].ToJQuery().text(); } var name = sig.substr(0, sig.indexOf("(")); var me = new Method { Name = name, Type = new Class { Name = type }, Description = desc, IsConstructor = isCtor, }; var prms = sig.substr(sig.indexOf("(") + 1); prms = prms.substr(0, prms.indexOf(")")); if (prms.length > 0) { if (!prms.Contains("function")) { var prms2 = prms.split(","); foreach (var prm in prms2) { var tokens = prm.split(':'); var prmTypeName = (tokens[1] ?? "").trim(); var prmName = tokens[0].trim(); var prm3 = new Parameter { Type = new Class { Name = prmTypeName ?? "object" } }; if (prmName.EndsWith("?")) { prmName = prmName.substr(0, prmName.length - 1); prm3.IsOptional = true; } prm3.Name = prmName; me.Parameters.Add(prm3); } } } list.push(me); } return(list); }
public void SetUp() { _document = new Document(); _table = (HtmlTableElement)_document.CreateElement("TABLE"); }
public void SetUp() { _document = new HtmlDocument(); _table = (HtmlTableElement)_document.CreateElement(TagsNames.Table); _document.Body.AppendChild(_table); }