public async Task MetroAnimatedTabControlShouldSelectTheCorrectTemplate() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <AnimatedTabControlWindow>().ConfigureAwait(false); var templateSelector = window.TryFindResource("TabControlContentTemplateSelector") as TabControlContentTemplateSelector; Assert.NotNull(templateSelector); var tabControl = window.MetroTabControl2; Assert.Equal(2, tabControl.Items.Count); var tabItem = ((TabItem)tabControl.ItemContainerGenerator.ContainerFromIndex(0)); var contentPresenter = tabControl.FindChild <ContentPresenter>("PART_SelectedContentHost"); contentPresenter.ApplyTemplate(); var textBlock = contentPresenter.FindChild <TextBlock>(null); Assert.Equal(((FirstViewModel)tabItem.Content).Name, textBlock.Text); tabItem = ((TabItem)tabControl.ItemContainerGenerator.ContainerFromIndex(1)); window.Invoke(() => tabItem.IsSelected = true); contentPresenter = tabControl.FindChild <ContentPresenter>("PART_SelectedContentHost"); contentPresenter.ApplyTemplate(); textBlock = contentPresenter.FindChild <TextBlock>(null); Assert.Equal(((SecondViewModel)tabItem.Content).Name, textBlock.Text); }
public async Task TestTitleCharacterCasingProperty() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(w => w.Title = "Test"); var titleBar = window.FindChild <ContentControl>("PART_TitleBar"); var titleBarContent = titleBar.FindChild <ContentPresenter>("PART_ContentPresenter"); var be = BindingOperations.GetBindingExpression(titleBarContent, ContentControl.ContentProperty); Assert.NotNull(be); be.UpdateTarget(); // default should be UPPER Assert.Equal(CharacterCasing.Upper, window.TitleCharacterCasing); Assert.Equal("TEST", titleBarContent.Content); window.TitleCharacterCasing = CharacterCasing.Lower; be.UpdateTarget(); Assert.Equal("test", titleBarContent.Content); window.TitleCharacterCasing = CharacterCasing.Normal; be.UpdateTarget(); Assert.Equal("Test", titleBarContent.Content); }
public async Task ShouldConvertTextInput() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <NumericUpDownWindow>().ConfigureAwait(false); await TestHost.SwitchToAppThread(); var textBox = window.TheNUD.FindChild <TextBox>(string.Empty); Assert.NotNull(textBox); window.TheNUD.NumericInputMode = NumericInput.All; SetText(textBox, "42"); Assert.Equal(42d, window.TheNUD.Value); SetText(textBox, "42.2"); Assert.Equal(42.2d, window.TheNUD.Value); SetText(textBox, "."); Assert.Equal(0d, window.TheNUD.Value); SetText(textBox, ".9"); Assert.Equal(0.9d, window.TheNUD.Value); SetText(textBox, ".0115"); Assert.Equal(0.0115d, window.TheNUD.Value); }
public async Task ReceivesDataContext() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <DialogWindow>(); var vm = new TheViewModel(); var dialog = (CustomDialog)window.Resources["CustomDialog"]; await window.ShowMetroDialogAsync(dialog); await TestHost.SwitchToAppThread(); // No idea why we have to do this again Assert.Equal(await window.GetCurrentDialogAsync <CustomDialog>(), dialog); Assert.NotNull(await window.GetCurrentDialogAsync <BaseMetroDialog>()); Assert.Null(await window.GetCurrentDialogAsync <MessageDialog>()); dialog.DataContext = vm; var textBlock = dialog.FindChild <TextBlock>("TheDialogBody"); Assert.Equal(vm.Text, textBlock.Text); await window.HideMetroDialogAsync(dialog); await TestHost.SwitchToAppThread(); // No idea why we have to do this again Assert.Null(await window.GetCurrentDialogAsync <MessageDialog>()); }
public async Task TemplateBindingShouldGetTheFontSize() { await TestHost.SwitchToAppThread(); var testTile = new Tile(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(w => { var grid = new Grid(); grid.Children.Add(testTile); w.Content = grid; }).ConfigureAwait(false); window.Invoke(() => { // default values Assert.Equal(16d, testTile.FindChild <AccessText>(string.Empty).FontSize); Assert.Equal(28d, testTile.FindChild <TextBlock>(string.Empty).FontSize); // now change it var fontSize = 42d; testTile.TitleFontSize = fontSize; Assert.Equal(fontSize, testTile.FindChild <AccessText>(string.Empty).FontSize); testTile.CountFontSize = fontSize; Assert.Equal(fontSize, testTile.FindChild <TextBlock>(string.Empty).FontSize); }); }
public async Task TimePickerTimeFormat() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <DateAndTimePickerWindow>().ConfigureAwait(false); window.Invoke(() => { Assert.Equal("it-IT", window.TheDateTimeFormatPicker.Culture.IetfLanguageTag); Assert.False(window.TheDateTimeFormatPicker.IsMilitaryTime); window.TheDateTimeFormatPicker.SelectedTimeFormat = TimePickerFormat.Short; Assert.Equal("31/08/2016 14:00", window.TheDateTimeFormatPicker.FindChild <DatePickerTextBox>(string.Empty).Text); window.TheDateTimeFormatPicker.SelectedTimeFormat = TimePickerFormat.Long; Assert.Equal("31/08/2016 14:00:01", window.TheDateTimeFormatPicker.FindChild <DatePickerTextBox>(string.Empty).Text); window.TheDateTimeFormatPicker.SelectedDateFormat = DatePickerFormat.Long; Assert.Equal("mercoledì 31 agosto 2016 14:00:01", window.TheDateTimeFormatPicker.FindChild <DatePickerTextBox>(string.Empty).Text); window.TheDateTimeFormatPicker.SelectedTimeFormat = TimePickerFormat.Short; Assert.Equal("mercoledì 31 agosto 2016 14:00", window.TheDateTimeFormatPicker.FindChild <DatePickerTextBox>(string.Empty).Text); }); }
public async Task CanChangeLegacyTheme() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); ThemeManager.ChangeTheme(window, ThemeManager.DefaultAccents.First(accent => accent.Name == "Blue"), Theme.Dark); }
public async Task ShowsRightWindowCommandsOnTopByDefault() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); Assert.Equal(WindowCommandsOverlayBehavior.Always, window.RightWindowCommandsOverlayBehavior); }
public async Task DefaultFlyoutPositionIsLeft() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <FlyoutWindow>(); Assert.Equal(Position.Left, window.DefaultFlyout.Position); }
public async Task FlyoutIsClosedByDefault() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <FlyoutWindow>(); Assert.False(window.DefaultFlyout.IsOpen); }
public async Task DefaultFlyoutThemeIsDark() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <FlyoutWindow>(); Assert.Equal(FlyoutTheme.Dark, window.DefaultFlyout.Theme); }
public async Task FlyoutIsHiddenByDefault() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <FlyoutWindow>(); // root grid should be hidden Assert.Equal(Visibility.Hidden, window.DefaultFlyout.Visibility); }
public async Task MinMaxButtonsShouldBeToggled() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); var minButton = GetButton(window, "PART_Min"); var maxButton = GetButton(window, "PART_Max"); // min/max should be visible Assert.True(minButton.IsVisible); Assert.True(maxButton.IsVisible); Assert.Equal(ResizeMode.CanResize, window.ResizeMode); window.ResizeMode = ResizeMode.CanMinimize; // min should be visible, max hidden Assert.True(minButton.IsVisible); Assert.False(maxButton.IsVisible); Assert.Equal(ResizeMode.CanMinimize, window.ResizeMode); window.ShowMinButton = false; // min should be hidden Assert.False(minButton.IsVisible); window.ResizeMode = ResizeMode.NoResize; // min/max should be hidden Assert.False(minButton.IsVisible); Assert.False(maxButton.IsVisible); Assert.Equal(ResizeMode.NoResize, window.ResizeMode); window.ShowMaxRestoreButton = false; // max should be hidden Assert.False(maxButton.IsVisible); window.ResizeMode = ResizeMode.CanResizeWithGrip; // min/max should be hidden Assert.False(minButton.IsVisible); Assert.False(maxButton.IsVisible); Assert.Equal(ResizeMode.CanResizeWithGrip, window.ResizeMode); window.ShowMinButton = true; window.ShowMaxRestoreButton = true; // min/max should be visible Assert.True(minButton.IsVisible); Assert.True(maxButton.IsVisible); window.ResizeMode = ResizeMode.NoResize; // min/max should be hidden Assert.False(minButton.IsVisible); Assert.False(maxButton.IsVisible); Assert.Equal(ResizeMode.NoResize, window.ResizeMode); }
public async Task WindowCommandsShouldHaveTheParentWindow() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); Assert.Equal(window, window.LeftWindowCommands.ParentWindow); Assert.Equal(window, window.RightWindowCommands.ParentWindow); Assert.Equal(window, window.FindChild <WindowButtonCommands>("PART_WindowButtonCommands").ParentWindow); }
public async Task IconShouldBeCollapsedWithShowTitleBarFalse() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(w => w.ShowTitleBar = false); var icon = window.FindChild <ContentControl>("PART_Icon"); Assert.Equal(Visibility.Collapsed, icon.Visibility); }
public async Task ChangeAppStyleForWindowShouldThrowArgumentNullException() { await TestHost.SwitchToAppThread(); await WindowHelpers.CreateInvisibleWindowAsync<MetroWindow>(); Assert.Throws<ArgumentNullException>(() => ThemeManager.ChangeAppStyle((Window)null, ThemeManager.GetAccent("Red"), ThemeManager.GetAppTheme("BaseLight"))); Assert.Throws<ArgumentNullException>(() => ThemeManager.ChangeAppStyle(Application.Current.MainWindow, ThemeManager.GetAccent("Red"), ThemeManager.GetAppTheme("UnknownTheme"))); Assert.Throws<ArgumentNullException>(() => ThemeManager.ChangeAppStyle(Application.Current.MainWindow, ThemeManager.GetAccent("UnknownAccentColor"), ThemeManager.GetAppTheme("BaseLight"))); }
public async Task SquareButtonButtonTextIsLowerCase() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <ButtonWindow>(); var presenter = window.SquareButton.FindChild <ContentPresenter>("PART_ContentPresenter"); Assert.Equal("sometext", presenter.Content); }
public async Task IconShouldBeVisibleByDefault() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); var icon = window.GetPart <ContentControl>("PART_Icon"); Assert.Equal(Visibility.Visible, icon.Visibility); }
public async Task DefaultButtonTextIsUpperCase() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <ButtonWindow>(); var presenter = window.DefaultButton.FindChild <ContentPresenter>("PART_ContentPresenter"); Assert.Equal("SOMETEXT", presenter.Content); }
public async Task DefaultWindowCommandColorIsBlack() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <CleanWindow>(); var blackBrushColor = ((SolidColorBrush)ThemeManager.GetAppTheme("BaseLight").Resources["BlackBrush"]).Color; window.AssertWindowCommandsColor(blackBrushColor); }
/// <summary> /// Called immediately after the class has been created, before it is used. /// </summary> public async Task InitializeAsync() { await TestHost.SwitchToAppThread(); this.Window = await WindowHelpers.CreateInvisibleWindowAsync <NumericUpDownWindow>().ConfigureAwait(false); this.TextBox = this.Window.TheNUD.FindChild <TextBox>(); this.NumUp = this.Window.TheNUD.FindChild <RepeatButton>("PART_NumericUp"); this.NumDown = this.Window.TheNUD.FindChild <RepeatButton>("PART_NumericDown"); }
public async Task CheckDefaultOverlayBehaviors() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); Assert.Equal(WindowCommandsOverlayBehavior.Never, window.IconOverlayBehavior); Assert.Equal(WindowCommandsOverlayBehavior.Flyouts, window.LeftWindowCommandsOverlayBehavior); Assert.Equal(WindowCommandsOverlayBehavior.Flyouts, window.RightWindowCommandsOverlayBehavior); Assert.Equal(WindowCommandsOverlayBehavior.Always, window.WindowButtonCommandsOverlayBehavior); }
public async Task SplitButtonShouldRespectParentIsEnabledProperty() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <ButtonWindow>(); window.TheStackPanel.SetCurrentValue(UIElement.IsEnabledProperty, false); Assert.False(window.TheSplitButton.IsEnabled); window.TheStackPanel.SetCurrentValue(UIElement.IsEnabledProperty, true); Assert.True(window.TheSplitButton.IsEnabled); }
public async Task IconCanOverlayHiddenTitlebar() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); window.IconOverlayBehavior = WindowCommandsOverlayBehavior.HiddenTitleBar; window.ShowTitleBar = false; var icon = window.GetPart <ContentControl>("PART_Icon"); Assert.Equal(Visibility.Visible, icon.Visibility); }
public async Task FindFlyoutWithFindChildren() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <FlyoutWindow>(); Assert.DoesNotThrow(() => { var flyouts = (window.Content as DependencyObject).FindChildren <Flyout>(true); var flyoutOnGrid = flyouts.FirstOrDefault(f => f.Name == "FlyoutOnGrid"); Assert.NotNull(flyoutOnGrid); }); }
public async Task SquareButtonBespectsButtonHelperContentCharacterCasing() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <ButtonWindow>(); Button defaultButton = window.SquareButton; ControlsHelper.SetContentCharacterCasing(defaultButton, CharacterCasing.Normal); var presenter = defaultButton.FindChild <ContentPresenter>("PART_ContentPresenter"); Assert.Equal("SomeText", presenter.Content); }
public async Task DefaultButtonRespectsButtonHelperPreserveTextCase() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <ButtonWindow>(); Button defaultButton = window.DefaultButton; ButtonHelper.SetPreserveTextCase(defaultButton, true); var presenter = defaultButton.FindChild <ContentPresenter>("PART_ContentPresenter"); Assert.Equal("SomeText", presenter.Content); }
public async Task IconShouldBeVisibleWithShowTitleBarFalseAndOverlayBehaviorHiddenTitleBar() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(w => { w.IconOverlayBehavior = WindowCommandsOverlayBehavior.HiddenTitleBar; w.ShowTitleBar = false; }); var icon = window.FindChild <ContentControl>("PART_Icon"); Assert.Equal(Visibility.Visible, icon.Visibility); }
public async Task WindowButtonCommandsAreOverFlyout() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <FlyoutWindow>(); window.RightFlyout.IsOpen = true; int windowCommandsZIndex = Panel.GetZIndex(window.WindowButtonCommands); int flyoutindex = Panel.GetZIndex(window.RightFlyout); Assert.True(windowCommandsZIndex > flyoutindex); }
public async Task WindowSettingsUpgradeSettingsShouldBeTrueByDefault() { await TestHost.SwitchToAppThread(); var window = await WindowHelpers.CreateInvisibleWindowAsync <MetroWindow>(); window.SaveWindowPosition = true; var settings = window.GetWindowPlacementSettings(); Assert.NotNull(settings); Assert.Equal(true, settings.UpgradeSettings); }