public void DumpAndVerifyVisualTree(UIElement root, string masterFilePrefix, string messageOnError = null) { VisualTreeLog.LogDebugInfo("DumpVisualTreeAndCompareWithMaster with masterFilePrefix " + masterFilePrefix); string expectedContent = ""; string content = DumpVisualTree(root, _translator, _filter, _logger); MasterFileStorage storage = new MasterFileStorage(!_shouldLogMasterFile, masterFilePrefix); string bestMatchedMasterFileName = storage.BestMatchedMasterFileName; string expectedMasterFileName = storage.ExpectedMasterFileName; VisualTreeLog.LogDebugInfo("Target master file: " + expectedMasterFileName); VisualTreeLog.LogDebugInfo("Best matched master file: " + bestMatchedMasterFileName); if (!string.IsNullOrEmpty(bestMatchedMasterFileName)) { expectedContent = MasterFileStorage.GetMasterFileContent(bestMatchedMasterFileName); } string result = new VisualTreeOutputCompare(content, expectedContent).ToString(); if (!string.IsNullOrEmpty(result)) { storage.LogMasterFile(expectedMasterFileName, content); storage.LogMasterFile(expectedMasterFileName + ".orig", expectedContent); if (!string.IsNullOrEmpty(messageOnError)) { _testResult.AppendLine(messageOnError); _testResult.AppendLine(string.Format("{0}.xml and {0}.orig.xaml is logged", expectedMasterFileName)); } _testResult.AppendLine(result); } }
public static void ChangeRequestedTheme(UIElement root, ElementTheme theme) { FrameworkElement element = root as FrameworkElement; VisualTreeLog.LogDebugInfo("Request Theme: " + theme.ToString()); RunOnUIThread.Execute(() => { element.RequestedTheme = theme; }); }
public static string DumpVisualTree(DependencyObject root, IPropertyValueTranslator translator = null, IFilter filter = null, IVisualTreeLogger logger = null) { VisualTreeLog.LogDebugInfo("DumpVisualTree"); string content = ""; RunOnUIThread.Execute(() => { content = VisualTreeDumper.DumpToXML(root, translator, filter, logger); }); return(content); }
public static UIElement SetupVisualTree(string xaml) { VisualTreeLog.LogDebugInfo("SetupVisualTree " + xaml); UIElement root = null; RunOnUIThread.Execute(() => { root = (UIElement)XamlReader.Load(xaml); MUXControlsTestApp.App.TestContentRoot = root; }); MUXControlsTestApp.Utilities.IdleSynchronizer.Wait(); return(root); }
public static bool VerifyVisualTree(UIElement root, string masterFilePrefix, Theme theme = Theme.None, IPropertyValueTranslator translator = null, IFilter filter = null, IVisualTreeLogger logger = null) { VisualTreeLog.LogInfo("VerifyVisualTree for theme " + theme.ToString()); TestExecution helper = new TestExecution(translator, filter, logger, AlwaysLogMasterFile); if (theme == Theme.None) { helper.DumpAndVerifyVisualTree(root, masterFilePrefix); } else { List <ElementTheme> themes = new List <ElementTheme>(); if (theme == Theme.Dark) { themes.Add(ElementTheme.Dark); } else if (theme == Theme.Light) { themes.Add(ElementTheme.Light); } else if (theme == Theme.All) { themes = new List <ElementTheme>() { ElementTheme.Dark, ElementTheme.Light }; } foreach (var requestedTheme in themes) { string themeName = requestedTheme.ToString(); VisualTreeLog.LogInfo("Change RequestedTheme to " + themeName); ChangeRequestedTheme(root, requestedTheme); helper.DumpAndVerifyVisualTree(root, masterFilePrefix + "_" + themeName, "DumpAndVerifyVisualTree for " + themeName); } } if (helper.HasError()) { Verify.Fail(helper.GetTestResult(), "Test Failed"); return(false); } return(true); }