private static void VerifyElementsVisitedCount(FrameworkElement root, int visitedNoteCount) { App.Content = root; var visitedItems = new List <FrameworkElement>(); var analyzer = new CountingElementAnalyzer(visitedItems); var walker = new VisualTreeWalker(root); walker.Analyzers.Add(analyzer); walker.ScanVisualTree(); Assert.AreEqual(visitedNoteCount, visitedItems.Count, "Should have visited every element exactly once."); }
public void VerifyVisitingOrderIsBreadthFirstSearch() { App.Content = new BreadthFirsSearchTestTree(); var visitedItems = new List <FrameworkElement>(); var analyzer = new CountingElementAnalyzer(visitedItems); var walker = new VisualTreeWalker(App.Content); walker.Analyzers.Add(analyzer); walker.ScanVisualTree(); Assert.AreEqual(28, visitedItems.Count, "Should have visited every element exactly once."); for (int i = 0; i < visitedItems.Count; i++) { Assert.AreEqual(i.ToString(), visitedItems[i].Tag, "Should have visited items in specific orders"); } }
public void VerifySkippingBehaviorIsCorrect() { App.Content = new StackPanel() { Children = { new Button(), new Button(), new Button(), new Button(), new Button() } }; var visitedItems = new List <FrameworkElement>(); var analyzer = new CountingElementAnalyzer(visitedItems, false); var walker = new VisualTreeWalker(App.Content, analyzer); walker.ScanVisualTree(); Assert.AreEqual(1, visitedItems.Count, "Should have exactly one element."); }