public void AbstractXPathBuilder_Synthetize_ExactSamePathsButDifferentHierarchies() { HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(GenerateHtmlPageForSynthetizeTests()); HtmlNode article1 = doc.DocumentNode.SelectSingleNode("//*[@id=\"article1\"]/h2"); AbstractXPathBuilder xpath1 = new HtmlXPathBuilder(); xpath1.Build(article1); HtmlNode article2 = doc.DocumentNode.SelectSingleNode("//*[@id=\"article2\"]/h2"); AbstractXPathBuilder xpath2 = new HtmlXPathBuilder(); xpath2.Build(article2); List <AbstractXPathBuilder> list = new List <AbstractXPathBuilder>(); list.Add(xpath1); list.Add(xpath2); AbstractXPathBuilder synthetisis = HtmlXPathBuilder.Synthetize(list); string expectedResult = "/html/body/div/section/article[@id]/h2"; string actualResult = synthetisis.ToString(); Assert.AreEqual(expectedResult, actualResult); synthetisis.Optimize(); string expectedOptimization = "//article[@id]/h2"; string optimizedResult = synthetisis.ToString(); Assert.AreEqual(expectedOptimization, optimizedResult); }
private void ClickHistory_XPathSolutionClick(object sender, AbstractXPathBuilder e) { if (e != null) { XPathInput1.Text = e.ToString(); } }
private void CodeSourceTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { if (CodeSourceTreeIsCollapsing) { return; } TreeViewItem selected = (TreeViewItem)e.NewValue; selected.BringIntoView(); selected.Focus(); if (PreFilterLock.IsChecked == false) { AbstractXPathBuilder xpath = Parser.SuggestXPathFor(selected, String.Empty); XPathInput2.Text = string.Empty; XPathInput1.Text = xpath.ToString(); ClickHistory.Add(xpath); } else { string root = XPathInput1.Text; AbstractXPathBuilder xpath = Parser.SuggestXPathFor(selected, root); XPathInput2.Text = xpath.ToString(); ClickHistory.Add(xpath); } }
private void TextBoxWithValidation_PreviewDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent("AbstractXPathBuilder")) { AbstractXPathBuilder xp = e.Data.GetData("AbstractXPathBuilder") as AbstractXPathBuilder; this.Text = xp.ToString(); e.Handled = true; } }