private void TeachingTipTestHooks_IdleStatusChanged(TeachingTip sender, object args) { if (TeachingTipTestHooks.GetIsIdle(this.TestTeachingTip)) { this.IsIdleCheckBox.IsChecked = true; } else { this.IsIdleCheckBox.IsChecked = false; } }
public void VerifySubTitleBlockVisibilityOnInitialUnset() { TeachingTip teachingTip = null; RunOnUIThread.Execute(() => { teachingTip = new TeachingTip(); teachingTip.IsOpen = true; Content = teachingTip; }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { Verify.AreEqual("", teachingTip.Title); Verify.AreEqual(Visibility.Collapsed, TeachingTipTestHooks.GetTitleVisibility(teachingTip)); Verify.AreEqual("", teachingTip.Subtitle); Verify.AreEqual(Visibility.Collapsed, TeachingTipTestHooks.GetSubtitleVisibility(teachingTip)); }); }
[TestProperty("TestPass:IncludeOnlyOn", "Desktop")] // TeachingTip doesn't appear to show up correctly in OneCore. public void TeachingTipBackgroundTest() { TeachingTip teachingTip = null, teachingTipLightDismiss = null; SolidColorBrush blueBrush = null; Brush lightDismissBackgroundBrush = null; var loadedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { Grid root = new Grid(); teachingTip = new TeachingTip(); teachingTip.Loaded += (object sender, RoutedEventArgs args) => { loadedEvent.Set(); }; teachingTipLightDismiss = new TeachingTip(); teachingTipLightDismiss.IsLightDismissEnabled = true; // Set LightDismiss background before show... it shouldn't take effect in the tree blueBrush = new SolidColorBrush(Colors.Blue); teachingTipLightDismiss.Background = blueBrush; root.Resources.Add("TeachingTip", teachingTip); root.Resources.Add("TeachingTipLightDismiss", teachingTipLightDismiss); lightDismissBackgroundBrush = MUXControlsTestApp.App.Current.Resources["TeachingTipTransientBackground"] as Brush; Verify.IsNotNull(lightDismissBackgroundBrush, "lightDismissBackgroundBrush"); teachingTip.IsOpen = true; teachingTipLightDismiss.IsOpen = true; MUXControlsTestApp.App.TestContentRoot = root; }); IdleSynchronizer.Wait(); loadedEvent.WaitOne(); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { var redBrush = new SolidColorBrush(Colors.Red); teachingTip.SetValue(TeachingTip.BackgroundProperty, redBrush); Verify.AreSame(redBrush, teachingTip.GetValue(TeachingTip.BackgroundProperty) as Brush); Verify.AreSame(redBrush, teachingTip.Background); teachingTip.Background = blueBrush; Verify.AreSame(blueBrush, teachingTip.Background); { var popup = TeachingTipTestHooks.GetPopup(teachingTip); var child = popup.Child; var grandChild = VisualTreeHelper.GetChild(child, 0); Verify.AreSame(blueBrush, ((Grid)grandChild).Background, "Checking TeachingTip.Background TemplateBinding works"); } { var popup = TeachingTipTestHooks.GetPopup(teachingTipLightDismiss); var child = popup.Child; var grandChild = VisualTreeHelper.GetChild(child, 0); var actualBrush = ((Grid)grandChild).Background; Log.Comment("Checking LightDismiss TeachingTip Background is using resource for first invocation"); if (lightDismissBackgroundBrush != actualBrush) { if (actualBrush is SolidColorBrush actualSolidBrush) { string teachingTipMessage = $"LightDismiss TeachingTip Background is SolidColorBrush with color {actualSolidBrush.Color}"; Log.Comment(teachingTipMessage); Verify.Fail(teachingTipMessage); } else { Verify.AreSame(lightDismissBackgroundBrush, actualBrush, "Checking LightDismiss TeachingTip Background is using resource for first invocation"); } } } teachingTip.IsLightDismissEnabled = true; }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { Verify.AreEqual(blueBrush.Color, ((SolidColorBrush)teachingTip.Background).Color); var popup = TeachingTipTestHooks.GetPopup(teachingTip); var child = popup.Child as Grid; var grandChild = VisualTreeHelper.GetChild(child, 0); var grandChildBackgroundBrush = ((Grid)grandChild).Background; //If we can no longer cast the background brush to a solid color brush then changing the //IsLightDismissEnabled has changed the background as we expected it to. if (grandChildBackgroundBrush is SolidColorBrush) { Verify.AreNotEqual(blueBrush.Color, ((SolidColorBrush)grandChildBackgroundBrush).Color); } }); }