private void CloseFlyout(CommandBarFlyout flyout) { Log.Comment("Closing flyout..."); AutoResetEvent closedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { flyout.Closed += (sender, args) => closedEvent.Set(); flyout.Hide(); }); TestUtilities.WaitForEvent(closedEvent); IdleSynchronizer.Wait(); Log.Comment("Flyout closed."); }
public void VerifyFlyoutDefaultPropertyValues() { /* * if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) * { * Log.Warning("Test is disabled pre-RS2 because CommandBarFlyout is not supported pre-RS2"); * return; * } */ RunOnUIThread.Execute(() => { CommandBarFlyout commandBarFlyout = new CommandBarFlyout(); Verify.IsNotNull(commandBarFlyout); Verify.IsNotNull(commandBarFlyout.PrimaryCommands); Verify.AreEqual(0, commandBarFlyout.PrimaryCommands.Count); Verify.IsNotNull(commandBarFlyout.SecondaryCommands); Verify.AreEqual(0, commandBarFlyout.SecondaryCommands.Count); }); }
public void VerifyFlyoutCommandsArePropagatedToTheCommandBar() { /* * if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) * { * Log.Warning("Test is disabled pre-RS2 because CommandBarFlyout is not supported pre-RS2"); * return; * } */ CommandBarFlyout commandBarFlyout = null; Button commandBarFlyoutTarget = null; SetupCommandBarFlyoutTest(out commandBarFlyout, out commandBarFlyoutTarget); OpenFlyout(commandBarFlyout, commandBarFlyoutTarget); RunOnUIThread.Execute(() => { Popup flyoutPopup = GetFlyoutPopup(); CommandBar commandBar = TestUtilities.FindDescendents <CommandBar>(flyoutPopup).Single(); Verify.AreEqual(commandBarFlyout.PrimaryCommands.Count, commandBar.PrimaryCommands.Count); for (int i = 0; i < commandBarFlyout.PrimaryCommands.Count; i++) { Verify.AreEqual(commandBarFlyout.PrimaryCommands[i], commandBar.PrimaryCommands[i]); } Verify.AreEqual(commandBarFlyout.SecondaryCommands.Count, commandBar.SecondaryCommands.Count); for (int i = 0; i < commandBarFlyout.SecondaryCommands.Count; i++) { Verify.AreEqual(commandBarFlyout.SecondaryCommands[i], commandBar.SecondaryCommands[i]); } }); CloseFlyout(commandBarFlyout); }
private void OpenFlyout(CommandBarFlyout flyout, Button flyoutTarget) { Log.Comment("Opening flyout..."); AutoResetEvent openedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { flyout.Opened += (sender, args) => openedEvent.Set(); //if (ApiInformation.IsTypePresent("System.Windows.Controls.Primitives.FlyoutShowMode")) //{ // flyout.ShowAt(flyoutTarget, new FlyoutShowOptions { ShowMode = FlyoutShowMode.Transient }); //} //else { flyout.ShowAt(flyoutTarget); } }); TestUtilities.WaitForEvent(openedEvent); IdleSynchronizer.Wait(); Log.Comment("Flyout opened."); }
private void SetupCommandBarFlyoutTest(out CommandBarFlyout flyout, out Button flyoutTarget) { CommandBarFlyout commandBarFlyout = null; Button commandBarFlyoutTarget = null; RunOnUIThread.Execute(() => { commandBarFlyout = new CommandBarFlyout() { Placement = FlyoutPlacementMode.Right }; commandBarFlyout.PrimaryCommands.Add(new AppBarButton() { Icon = new SymbolIcon(Symbol.Cut) }); commandBarFlyout.PrimaryCommands.Add(new AppBarButton() { Icon = new SymbolIcon(Symbol.Copy) }); commandBarFlyout.PrimaryCommands.Add(new AppBarButton() { Icon = new SymbolIcon(Symbol.Paste) }); commandBarFlyout.PrimaryCommands.Add(new AppBarButton() { Icon = new SymbolIcon(Symbol.Bold) }); commandBarFlyout.PrimaryCommands.Add(new AppBarButton() { Icon = new SymbolIcon(Symbol.Italic) }); commandBarFlyout.PrimaryCommands.Add(new AppBarButton() { Icon = new SymbolIcon(Symbol.Underline) }); AppBarButton undoButton = new AppBarButton() { Label = "Undo", Icon = new SymbolIcon(Symbol.Undo) }; commandBarFlyout.SecondaryCommands.Add(undoButton); AppBarButton redoButton = new AppBarButton() { Label = "Redo", Icon = new SymbolIcon(Symbol.Redo) }; commandBarFlyout.SecondaryCommands.Add(redoButton); AppBarButton selectAllButton = new AppBarButton() { Label = "Select all" }; commandBarFlyout.SecondaryCommands.Add(selectAllButton); /* * if (ApiInformation.IsPropertyPresent("System.Windows.UIElement", "KeyboardAccelerators")) * { * undoButton.KeyboardAccelerators.Add(new KeyboardAccelerator() { Key = VirtualKey.Z, Modifiers = VirtualKeyModifiers.Control }); * redoButton.KeyboardAccelerators.Add(new KeyboardAccelerator() { Key = VirtualKey.Y, Modifiers = VirtualKeyModifiers.Control }); * selectAllButton.KeyboardAccelerators.Add(new KeyboardAccelerator() { Key = VirtualKey.A, Modifiers = VirtualKeyModifiers.Control }); * } */ commandBarFlyoutTarget = new Button() { Content = "Click for flyout" }; Content = commandBarFlyoutTarget; Content.UpdateLayout(); }); flyout = commandBarFlyout; flyoutTarget = commandBarFlyoutTarget; }
public void VerifyPrimaryCommandsCanOverflowToSecondaryItemsControl() { /* * if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) * { * Log.Warning("Test is disabled pre-RS2 because CommandBarFlyout is not supported pre-RS2"); * return; * } */ CommandBarFlyout flyout = null; Button flyoutTarget = null; RunOnUIThread.Execute(() => { flyout = new CommandBarFlyout() { Placement = FlyoutPlacementMode.Right }; flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 1" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 2" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 3" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 4" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 5" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 6" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 7" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 8" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 9" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 10" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 11" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 12" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 13" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 14" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 15" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 16" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 17" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 18" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 19" }); flyout.PrimaryCommands.Add(new AppBarButton() { Label = "Item 20" }); flyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item 21" }); flyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item 22" }); flyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item 23" }); flyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item 24" }); flyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item 25" }); flyoutTarget = new Button() { Content = "Click for flyout" }; Content = flyoutTarget; Content.UpdateLayout(); }); OpenFlyout(flyout, flyoutTarget); RunOnUIThread.Execute(() => { Popup flyoutPopup = VisualTreeHelperEx.GetOpenPopups(WindowEx.Current).Reverse().Skip(1).First(); CommandBar commandBar = TestUtilities.FindDescendents <CommandBar>(flyoutPopup).Single(); IList <ItemsControl> itemsControls = TestUtilities.FindDescendents <ItemsControl>(commandBar); Log.Comment("We expect there to be 2 ItemsControls inside the CommandBar; {0} were found.", itemsControls.Count); Verify.AreEqual(2, itemsControls.Count); ItemsControl primaryItemsControl = itemsControls[0]; ItemsControl secondaryItemsControl = itemsControls[1]; Log.Comment("We expect there to be 9 items located inside the primary ItemsControl; {0} were found.", primaryItemsControl.Items.Count); Verify.AreEqual(9, primaryItemsControl.Items.Count); Log.Comment("We expect there to be 17 items located inside the secondary ItemsControl (16 + autogenerated separator); {0} were found.", secondaryItemsControl.Items.Count); Verify.AreEqual(17, secondaryItemsControl.Items.Count); }); CloseFlyout(flyout); }
private void VerifyCommandBarSizing(CommandBarSizingOptions sizingOptions) { CommandBarFlyout commandBarFlyout = null; Button commandBarFlyoutTarget = null; SetupCommandBarFlyoutTest(out commandBarFlyout, out commandBarFlyoutTarget); RunOnUIThread.Execute(() => { switch (sizingOptions) { case CommandBarSizingOptions.SecondaryItemsLarger: commandBarFlyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item with a label wider than primary items" }); break; case CommandBarSizingOptions.SecondaryItemsMaxWidth: commandBarFlyout.SecondaryCommands.Add(new AppBarButton() { Label = "Item with a really really really long label that will not fit in the space provided" }); break; case CommandBarSizingOptions.SecondaryItemsMaxHeight: for (int i = 0; i < 20; i++) { commandBarFlyout.SecondaryCommands.Add(new AppBarButton() { Label = "Do another thing" }); } break; } }); OpenFlyout(commandBarFlyout, commandBarFlyoutTarget); CommandBar commandBar = null; RunOnUIThread.Execute(() => { Popup flyoutPopup = GetFlyoutPopup(); commandBar = TestUtilities.FindDescendents <CommandBar>(flyoutPopup).Single(); }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { // Pre-RS5, CommandBarFlyouts always open expanded, so to put us in a known good state, // we'll collapse the flyout before we do anything else. commandBar.IsOpen = false; }); IdleSynchronizer.Wait(); double originalWidth = 0; double originalHeight = 0; RunOnUIThread.Execute(() => { Popup flyoutPopup = GetFlyoutPopup(); commandBar = TestUtilities.FindDescendents <CommandBar>(flyoutPopup).Single(); originalWidth = commandBar.ActualWidth; originalHeight = commandBar.ActualHeight; commandBar.IsOpen = true; }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { CommandBarOverflowPresenter overflowPresenter = TestUtilities.FindDescendents <CommandBarOverflowPresenter>(commandBar).Single(); if (sizingOptions == CommandBarSizingOptions.PrimaryItemsLarger || sizingOptions == CommandBarSizingOptions.SecondaryItemsMaxHeight) { Verify.AreEqual(originalWidth, commandBar.ActualWidth); Verify.AreEqual(originalWidth, overflowPresenter.ActualWidth); } else { Verify.IsLessThan(originalWidth, commandBar.ActualWidth); Verify.AreEqual(overflowPresenter.ActualWidth, commandBar.ActualWidth); } Verify.AreEqual(originalHeight, commandBar.ActualHeight); if (sizingOptions == CommandBarSizingOptions.SecondaryItemsMaxWidth) { Verify.AreEqual(commandBar.MaxWidth, commandBar.ActualWidth); } else if (sizingOptions == CommandBarSizingOptions.SecondaryItemsMaxHeight) { Verify.AreEqual(overflowPresenter.MaxHeight, overflowPresenter.ActualHeight); } commandBar.IsOpen = false; }); IdleSynchronizer.Wait(); CloseFlyout(commandBarFlyout); }