示例#1
0
        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);
        }
示例#2
0
 private void ClickHistory_XPathSolutionClick(object sender, AbstractXPathBuilder e)
 {
     if (e != null)
     {
         XPathInput1.Text = e.ToString();
     }
 }
示例#3
0
        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);
            }
        }
示例#4
0
 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;
     }
 }