public virtual void PickerPeerExpandStateCollapsed() { Picker item = PickerInstance; PickerAutomationPeer peer = null; IExpandCollapseProvider provider = null; TestAsync( item, () => peer = FrameworkElementAutomationPeer.CreatePeerForElement(item) as PickerAutomationPeer, () => provider = peer.GetPattern(PatternInterface.ExpandCollapse) as IExpandCollapseProvider, () => Assert.AreEqual(ExpandCollapseState.Collapsed, provider.ExpandCollapseState, "Unexpected ExpandCollapseState!")); }
public virtual void PickerPeerSupportsExpandCollapse() { Picker item = PickerInstance; PickerAutomationPeer peer = null; IExpandCollapseProvider provider = null; TestAsync( item, () => peer = FrameworkElementAutomationPeer.CreatePeerForElement(item) as PickerAutomationPeer, () => provider = peer.GetPattern(PatternInterface.ExpandCollapse) as IExpandCollapseProvider, () => Assert.IsNotNull(provider, "IExpandCollapseProvider peer should not be null!")); }
public virtual void PickerPeerCollapseCollapsed() { Picker item = PickerInstance; PickerAutomationPeer peer = null; IExpandCollapseProvider provider = null; TestAsync( item, () => peer = FrameworkElementAutomationPeer.CreatePeerForElement(item) as PickerAutomationPeer, () => provider = peer.GetPattern(PatternInterface.ExpandCollapse) as IExpandCollapseProvider, () => provider.Collapse(), () => Assert.IsFalse(item.IsDropDownOpen, "Item should be collapsed!")); }
public virtual void PickerPeerExpandDisabled() { Picker item = PickerInstance; item.IsEnabled = false; PickerAutomationPeer peer = null; IExpandCollapseProvider provider = null; TestAsync( item, () => peer = FrameworkElementAutomationPeer.CreatePeerForElement(item) as PickerAutomationPeer, () => provider = peer.GetPattern(PatternInterface.ExpandCollapse) as IExpandCollapseProvider, () => provider.Expand()); }
public virtual void PickerPeerOnlySupportsCorrectPatterns() { PickerAutomationPeer peer = CreatePickerAutomationPeer(PickerInstance); int index = 0; while (Enum.IsDefined(typeof(PatternInterface), index)) { PatternInterface currentInterface = (PatternInterface)Enum.ToObject(typeof(PatternInterface), index); object implementation = peer.GetPattern(currentInterface); if (ExpectedPatterns.Contains(currentInterface)) { Assert.IsNotNull(implementation); } else { Assert.IsNull(implementation); } index++; } }
public virtual void ShouldThrowExceptionWhenCreatingPickerPeerWithNull() { PickerAutomationPeer peer = CreatePickerAutomationPeer(null); Assert.Fail("Should have thrown exception." + peer); }
public virtual void CreatePickerPeer() { PickerAutomationPeer peer = CreatePickerAutomationPeer(PickerInstance); Assert.IsNotNull(peer); }
/// <summary> /// IsDropDownOpenProperty property changed handler. /// </summary> /// <param name="d">Picker that changed its IsDropDownOpen.</param> /// <param name="e">Event arguments.</param> private static void OnIsDropDownOpenPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { Picker source = (Picker)d; // Ignore the change if requested if (source._ignorePropertyChange) { source._ignorePropertyChange = false; return; } bool oldValue = (bool)e.OldValue; bool newValue = (bool)e.NewValue; bool delayedClosingVisual = source._popupClosedVisualState; RoutedPropertyChangingEventArgs <bool> args = new RoutedPropertyChangingEventArgs <bool>(e.Property, oldValue, newValue, true); PickerAutomationPeer peer = FrameworkElementAutomationPeer.FromElement(source) as PickerAutomationPeer; if (peer != null) { peer.RaiseExpandCollapseAutomationEvent(oldValue, newValue); } if (newValue) { // Opening source.OnDropDownOpening(args); // Opened if (!args.Cancel) { source.OpenDropDown(oldValue, newValue); } } else { // Closing source.OnDropDownClosing(args); // Immediately close the drop down window: // When a popup closed visual state is present, the code path is // slightly different and the actual call to CloseDropDown will // be called only after the visual state's transition is done if (!args.Cancel && !delayedClosingVisual) { source.CloseDropDown(oldValue, newValue); } } // If canceled, revert the value change if (args.Cancel) { // source._ignorePropertyChange = true; source.SetValue(e.Property, oldValue); } // Closing call when visual states are in use if (delayedClosingVisual) { source.UpdateVisualState(true); } }