public Window (IRawElementProviderSimple provider) : base (provider) { if (provider != null) Role = Atk.Role.Frame; balloonWindow = (bool)(provider.GetPropertyValue (AutomationElementIdentifiers.IsNotifyIconProperty.Id) != null); rootProvider = (IRawElementProviderFragmentRoot) provider; if (rootProvider != null && balloonWindow) { Role = Atk.Role.Alert; Name = (string) provider.GetPropertyValue (AutomationElementIdentifiers.HelpTextProperty.Id); } transformProvider = (ITransformProvider) provider.GetPatternProvider (TransformPatternIdentifiers.Pattern.Id); windowProvider = (IWindowProvider) provider.GetPatternProvider (WindowPatternIdentifiers.Pattern.Id); }
public MenuItem (IRawElementProviderSimple provider) : base (provider) { if (provider == null) throw new ArgumentNullException ("provider"); if ((provider as IRawElementProviderFragment) == null) throw new ArgumentException ("Provider for ParentMenu should be IRawElementProviderFragment"); textExpert = TextImplementorFactory.GetImplementor (this, provider); Role = Atk.Role.MenuItem; string name = (string) provider.GetPropertyValue (AutomationElementIdentifiers.NameProperty.Id); if (!String.IsNullOrEmpty (name)) Name = name; invokeProvider = (IInvokeProvider) provider.GetPatternProvider (InvokePatternIdentifiers.Pattern.Id); toggleProvider = (IToggleProvider) provider.GetPatternProvider (TogglePatternIdentifiers.Pattern.Id); selectionItemProvider = (ISelectionItemProvider) provider.GetPatternProvider (SelectionItemPatternIdentifiers.Pattern.Id); expandCollapseProvider = (IExpandCollapseProvider) provider.GetPatternProvider (ExpandCollapsePatternIdentifiers.Pattern.Id); actionExpert.Add ("click", "click", null, DoClick); }
public ComboBoxItem (IRawElementProviderSimple provider) : base (provider) { int controlType = (int) provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id); selectionItemProvider = (ISelectionItemProvider)provider.GetPatternProvider ( SelectionItemPatternIdentifiers.Pattern.Id); if (selectionItemProvider == null) throw new ArgumentException ( String.Format ("Provider for ComboBoxItem (control type {0}) should implement ISelectionItemProvider", controlType)); textExpert = TextImplementorFactory.GetImplementor (this, provider); //FIXME: take in account ComboBox style changes at runtime if (ParentIsSimple ()) Role = Atk.Role.TableCell; else Role = Atk.Role.MenuItem; }
public TextBoxEntryView (IRawElementProviderSimple provider) : base (provider) { if (IsTableCell) Role = Atk.Role.TableCell; else Role = Atk.Role.Text; if (provider.GetPatternProvider (TextPatternIdentifiers.Pattern.Id) == null && provider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id) == null) throw new ArgumentException ("Provider for TextBox should either implement IValue or IText"); textExpert = TextImplementorFactory.GetImplementor (this, provider); if ((int) provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id) == ControlType.Document.Id) multiLine = true; editableTextExpert = new EditableTextImplementorHelper (this, this, textExpert); }
public SplitContainer (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.SplitPane; rangeValueProvider = (IRangeValueProvider)provider.GetPatternProvider (RangeValuePatternIdentifiers.Pattern.Id); object o = provider.GetPropertyValue (AutomationElementIdentifiers.OrientationProperty.Id); if (o is OrientationType) orientation = (OrientationType)o; else { IDockProvider dockProvider = (IDockProvider)provider.GetPatternProvider (DockPatternIdentifiers.Pattern.Id); if (dockProvider != null) { orientation = (dockProvider.DockPosition == DockPosition.Top || dockProvider.DockPosition == DockPosition.Bottom)? OrientationType.Horizontal: OrientationType.Vertical; } else { Log.Warn ("SplitContainer: Couldn't get orientation for splitter. Does not support DockProvider."); orientation = OrientationType.Horizontal; } } }
protected virtual void TestExpandCollapsePattern_ExpandCollapseStatePropertyEvent (IRawElementProviderSimple provider) { IExpandCollapseProvider expandCollapseProvider = provider.GetPatternProvider (ExpandCollapsePatternIdentifiers.Pattern.Id) as IExpandCollapseProvider; if (expandCollapseProvider == null) Assert.Fail ("Provider {0} is not implementing IExpandCollapseProvider", provider.GetType ()); bool enabled = (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id); ExpandCollapseState currentState = expandCollapseProvider.ExpandCollapseState; try { bridge.ResetEventLists (); if (currentState == ExpandCollapseState.Collapsed) expandCollapseProvider.Expand (); else if (currentState == ExpandCollapseState.Expanded || currentState == ExpandCollapseState.PartiallyExpanded) expandCollapseProvider.Collapse (); Assert.IsNotNull (bridge.GetAutomationPropertyEventFrom (provider, ExpandCollapsePatternIdentifiers.ExpandCollapseStateProperty.Id), "IExpandCollapseProvider.ExpandCollapseStateProperty didn't raise any event."); // Is hard to test NewValue or OldValue because the spec doesn't // say anything about those values when calling Collapse/Expand. } catch (ElementNotEnabledException) { if (!enabled) Assert.Fail ("Your provider is disabled but didn't throw ElementNotEnabledException."); } catch (InvalidOperationException) { // Expand is called when the ExpandCollapseState = LeafNode. if (currentState != ExpandCollapseState.LeafNode) Assert.Fail (string.Format ("InvalidOperationException is only thrown when state is LeafNode, current state: ", currentState)); } }
protected virtual void TestEmbeddedImagePattern_All (IRawElementProviderSimple provider, bool imageExpected) { IEmbeddedImageProvider embeddedImage = provider.GetPatternProvider (EmbeddedImagePatternIdentifiers.Pattern.Id) as IEmbeddedImageProvider; Assert.IsNotNull (embeddedImage, "Provider {0} is not implementing IEmbeddedImageProvider"); Assert.AreEqual (!imageExpected, embeddedImage.Bounds.IsEmpty, string.Format ("Image was {0}expected, but was {1}found", imageExpected ? "" : "not ", embeddedImage.Bounds.IsEmpty ? "not " : "")); if (imageExpected) { Rect providerRect = (Rect) provider.GetPropertyValue (AutomationElementIdentifiers.BoundingRectangleProperty.Id); Rect imageRect = embeddedImage.Bounds; Assert.IsTrue (imageRect.X >= providerRect.X, string.Format ("Image X: {0} must be >= than container X: {1}", imageRect.X, providerRect.X)); Assert.IsTrue (imageRect.Y >= providerRect.Y, string.Format ("Image Y: {0} must be >= than container Y: {1}", imageRect.Y, providerRect.Y)); Assert.IsTrue (imageRect.Width <= providerRect.Width, string.Format ("Image Width: {0} must be <= than container Width: {1}", imageRect.Width, providerRect.Width)); Assert.IsTrue (imageRect.Height <= providerRect.Height, string.Format ("Image Height: {0} must be <= than container Height: {1}", imageRect.Height, providerRect.Height)); } }
private double DistanceFrom (IRawElementProviderSimple otherProvider) { Rect bounds = (Rect) GetPropertyValue (AutomationElementIdentifiers.BoundingRectangleProperty.Id); Rect otherBounds = (Rect) otherProvider.GetPropertyValue (AutomationElementIdentifiers.BoundingRectangleProperty.Id); if (control != null && control.RightToLeft == SWF.RightToLeft.Yes) return Distance (bounds.TopRight, otherBounds.TopRight); else return Distance (bounds.TopLeft, otherBounds.TopLeft); }
protected virtual void TestThumbPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms742539.aspx // DEPENDS: IRangeValueProvider // DEPENDS: ITransformProvider Assert.AreEqual (Catalog.GetString ("thumb"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
protected override void TestEditPatterns (IRawElementProviderSimple provider) { // LAMESPEC: Edit must always support ITextProvider, but this *is not true* in Edit Cells Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsValuePatternAvailableProperty.Id), "Edit ControlType in DataGrid must support IValueProvider"); Assert.IsFalse ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsRangeValuePatternAvailableProperty.Id), "Edit ControlType in DataGrid MUST NOT support IRangeValueProvider"); Assert.AreEqual (Catalog.GetString ("edit"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); TestValuePattern_All (provider); }
public ScrollBar (IRawElementProviderSimple provider) : base (provider) { Role = Atk.Role.ScrollBar; rangeValueProvider = (IRangeValueProvider)provider.GetPatternProvider (RangeValuePatternIdentifiers.Pattern.Id); orientation = (OrientationType)provider.GetPropertyValue (AutomationElementIdentifiers.OrientationProperty.Id); }
protected virtual void TestWindowPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms746673.aspx Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsTransformPatternAvailableProperty.Id), "Window ControlType must support ITransformProvider"); Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsWindowPatternAvailableProperty.Id), "Window ControlType must support IWindowProvider"); // DEPENDS: IDockProvider Assert.AreEqual (Catalog.GetString ("window"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
public string HeaderValue(IRawElementProviderSimple element) { return element.GetPropertyValue(AutomationElementIdentifiers.NameProperty.Id).ToString(); }
protected virtual void TestTreePatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms743706.aspx // DEPENDS: ISelectionProvider // DEPENDS: IScrollProvider Assert.AreEqual (Catalog.GetString ("tree"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
protected virtual void TestTreeItemPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms743384.aspx Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsExpandCollapsePatternAvailableProperty.Id), "TreeItem ControlType must support IExpandCollapseProvider"); // DEPENDS: IInvokeProvider // DEPENDS: IScrollItemProvider // DEPENDS: ISelectionItemProvider // DEPENDS: IToggleProvider Assert.AreEqual (Catalog.GetString ("tree item"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); TestExpandCollapsePattern_ExpandCollapseStatePropertyEvent (provider); }
protected virtual void TestToolTipPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms752335.aspx // DEPENDS: IWindowProvider // DEPENDS: ITextProvider Assert.AreEqual (Catalog.GetString ("tool tip"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
protected virtual void TestToolBarPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms750425.aspx // DEPENDS: IExpandCollapsePattern // DEPENDS: IDockPattern // DEPENDS: TransformPattern Assert.AreEqual (Catalog.GetString ("tool bar"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
protected virtual void TestTitleBarPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms744939.aspx // NO REQUIRED PATTERNS Assert.AreEqual (Catalog.GetString ("title bar"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
protected virtual void TestTabItemPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms751611.aspx Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsSelectionItemPatternAvailableProperty.Id), "TabItem ControlType must support ISelectionItemProvider"); Assert.IsFalse ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsInvokePatternAvailableProperty.Id), "TabItem ControlType must support IInvokeProvider"); Assert.AreEqual (Catalog.GetString ("tab item"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }
protected void TestPatterns (IRawElementProviderSimple provider) { int ctype = (int) provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id); if (ctype == ControlType.Button.Id) TestButtonPatterns (provider); else if (ctype == ControlType.Calendar.Id) TestCalendarPatterns (provider); else if (ctype == ControlType.CheckBox.Id) TestCheckBoxPatterns (provider); else if (ctype == ControlType.ComboBox.Id) TestComboBoxPatterns (provider); else if (ctype == ControlType.DataGrid.Id) TestDataGridPatterns (provider); else if (ctype == ControlType.DataItem.Id) TestDataItemPatterns (provider); else if (ctype == ControlType.DataItem.Id) TestDocumentPatterns (provider); else if (ctype == ControlType.Edit.Id) TestEditPatterns (provider); else if (ctype == ControlType.Group.Id) TestGroupPatterns (provider); else if (ctype == ControlType.Header.Id) TestHeaderPatterns (provider); else if (ctype == ControlType.HeaderItem.Id) TestHeaderItemPatterns (provider); else if (ctype == ControlType.Hyperlink.Id) TestHyperlinkPatterns (provider); else if (ctype == ControlType.Hyperlink.Id) TestHyperlinkPatterns (provider); else if (ctype == ControlType.List.Id) TestListPatterns (provider); else if (ctype == ControlType.ListItem.Id) TestListItemPatterns (provider); else if (ctype == ControlType.Menu.Id) TestMenuPatterns (provider); else if (ctype == ControlType.MenuBar.Id) TestMenuBarPatterns (provider); else if (ctype == ControlType.MenuItem.Id) TestMenuItemPatterns (provider); else if (ctype == ControlType.Pane.Id) TestPanePatterns (provider); else if (ctype == ControlType.ProgressBar.Id) TestProgressBarPatterns (provider); else if (ctype == ControlType.RadioButton.Id) TestRadioButtonPatterns (provider); else if (ctype == ControlType.ScrollBar.Id) TestScrollBarPatterns (provider); else if (ctype == ControlType.Separator.Id) TestSeparatorPatterns (provider); else if (ctype == ControlType.Slider.Id) TestSliderPatterns (provider); else if (ctype == ControlType.Spinner.Id) TestSpinnerPatterns (provider); else if (ctype == ControlType.SplitButton.Id) TestSplitButtonPatterns (provider); else if (ctype == ControlType.StatusBar.Id) TestStatusBarPatterns (provider); else if (ctype == ControlType.Tab.Id) TestTabPatterns (provider); else if (ctype == ControlType.TabItem.Id) TestTabItemPatterns (provider); else if (ctype == ControlType.Table.Id) TestTablePatterns (provider); else if (ctype == ControlType.Text.Id) TestTextPatterns (provider); else if (ctype == ControlType.Thumb.Id) TestThumbPatterns (provider); else if (ctype == ControlType.TitleBar.Id) TestTitleBarPatterns (provider); else if (ctype == ControlType.ToolBar.Id) TestToolBarPatterns (provider); else if (ctype == ControlType.ToolTip.Id) TestToolTipPatterns (provider); else if (ctype == ControlType.Tree.Id) TestTreePatterns (provider); else if (ctype == ControlType.TreeItem.Id) TestTreeItemPatterns (provider); else if (ctype == ControlType.Window.Id) TestWindowPatterns (provider); }
protected virtual void TestTabPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms754207.aspx Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsSelectionPatternAvailableProperty.Id), "Tab ControlType must support ISelectionProvider"); // DEPENDS: IScrollProvider Assert.AreEqual (Catalog.GetString ("tab"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); TestSelectionPattern_GetSelectionMethod (provider); }
protected virtual void TestInvokePattern_InvokedEvent (IRawElementProviderSimple provider) { IInvokeProvider invokeProvider = provider.GetPatternProvider (InvokePatternIdentifiers.Pattern.Id) as IInvokeProvider; if (invokeProvider == null) Assert.Fail ("Provider {0} is not implementing IInvokeProvider", provider.GetType ()); bridge.ResetEventLists (); bool enabled = (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id); try { invokeProvider.Invoke (); Assert.IsNotNull (bridge.GetAutomationEventFrom (provider, InvokePatternIdentifiers.InvokedEvent.Id), "IInvokeProvider.Invoke didn't raise any event."); } catch (ElementNotEnabledException) { // According to http://msdn.microsoft.com/en-us/library/system.windows.automation.provider.iinvokeprovider.invoke.aspx if (!enabled) Assert.Fail ("Your provider is disabled but didn't throw ElementNotEnabledException."); } }
protected override void TestEditPatterns (IRawElementProviderSimple provider) { // LAMESPEC: We should implement ITextProvider instead of IValueProvider Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsValuePatternAvailableProperty.Id), "Edit ControlType must support ITextProvider"); Assert.IsFalse ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsRangeValuePatternAvailableProperty.Id), "Edit ControlType MUST NOT support IRangeValueProvider"); Assert.IsFalse ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsTextPatternAvailableProperty.Id), "Edit ControlType MUST NOT support ITextProvider"); TestValuePattern_ValuePropertyEvent (provider); TestValuePattern_IsReadOnlyPropertyEvent (provider); }
protected virtual void TestTablePatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms750608.aspx Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsGridPatternAvailableProperty.Id), "Table ControlType must support IGridProvider"); Assert.IsTrue ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsTablePatternAvailableProperty.Id), "Table ControlType must support ITableProvider"); // DEPENDS: ITableItemProvider Assert.AreEqual (Catalog.GetString ("table"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); TestTableItemPattern_All (provider); }
private bool IsListItem (IRawElementProviderSimple provider) { int controlTypeId = (int)provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id); return (controlTypeId == ControlType.TreeItem.Id || controlTypeId == ControlType.ListItem.Id); }
protected virtual void TestValuePattern_ValuePropertyEvent (IRawElementProviderSimple provider) { IValueProvider valueProvider = provider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id) as IValueProvider; if (valueProvider == null) Assert.Fail ("Provider {0} is not implementing IValueProvider", provider.GetType ()); bool enabled = (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id); Assert.AreEqual (!enabled, valueProvider.IsReadOnly, "!Enabled and IValueProvider.IsReadOnly should be equal"); try { string newValue = "I'm your new value!"; bridge.ResetEventLists (); valueProvider.SetValue (newValue); Assert.IsNotNull (bridge.GetAutomationPropertyEventFrom (provider, ValuePatternIdentifiers.ValueProperty.Id), "IValueProvider.Value didn't raise any event."); Assert.AreEqual (newValue, valueProvider.Value, "Different value even when Value event was raised"); } catch (ElementNotEnabledException) { // According to http://msdn.microsoft.com/en-us/library/system.windows.automation.provider.ivalueprovider.setvalue.aspx if (!enabled) Assert.Fail ("Your provider is disabled but didn't throw ElementNotEnabledException."); } }
public static void TestAutomationProperty (IRawElementProviderSimple provider, AutomationProperty property, object expectedValue) { Assert.AreEqual (expectedValue, provider.GetPropertyValue (property.Id), property.ProgrammaticName); }
protected virtual void TestValuePattern_IsReadOnlyPropertyEvent (IRawElementProviderSimple provider) { IValueProvider valueProvider = provider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id) as IValueProvider; if (valueProvider == null) Assert.Fail ("Provider {0} is not implementing IValueProvider", provider.GetType ()); bool enabled = (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id); Assert.AreEqual (!enabled, valueProvider.IsReadOnly, "!Enabled and IValueProvider.IsReadOnly should be equal"); bool newValue = enabled; bridge.ResetEventLists (); TestValuePattern_ChangeReadOnly (provider, newValue); AutomationPropertyChangedEventTuple tuple = bridge.GetAutomationPropertyEventFrom (provider, ValuePatternIdentifiers.IsReadOnlyProperty.Id); Assert.IsNotNull (tuple, "IValueProvider.IsReadOnly didn't raise any event."); Assert.AreEqual (newValue, tuple.e.NewValue, "Value is invalid in event."); Assert.AreEqual (!newValue, tuple.e.OldValue, "Value is invalid in event."); Assert.AreEqual (newValue, valueProvider.IsReadOnly, "IsReadOnly value not changed."); Assert.AreEqual (!newValue, (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id), "Enabled value not changed."); // Changing again newValue = !newValue; bridge.ResetEventLists (); TestValuePattern_ChangeReadOnly (provider, newValue); tuple = bridge.GetAutomationPropertyEventFrom (provider, ValuePatternIdentifiers.IsReadOnlyProperty.Id); Assert.IsNotNull (tuple, "IValueProvider.IsReadOnly didn't raise any event."); Assert.AreEqual (newValue, tuple.e.NewValue, "Value is invalid in event."); Assert.AreEqual (!newValue, tuple.e.OldValue, "Value is invalid in event."); Assert.AreEqual (newValue, valueProvider.IsReadOnly, "IsReadOnly value not changed."); Assert.AreEqual (!newValue, (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id), "Enabled value not changed."); }
protected virtual void TestTogglePattern_ToggleStatePropertyEvent (IRawElementProviderSimple provider) { IToggleProvider toggleProvider = provider.GetPatternProvider (TogglePatternIdentifiers.Pattern.Id) as IToggleProvider; if (toggleProvider == null) Assert.Fail ("Provider {0} is not implementing IToggleProvider", provider.GetType ()); // A control must cycle through its toggle states in this order: // On, Off, Indeterminate bool enabled = (bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsEnabledProperty.Id); ToggleState toggleState = toggleProvider.ToggleState; ToggleState firstState = toggleState; try { bridge.ResetEventLists (); do { bridge.ResetEventLists (); toggleProvider.Toggle (); Assert.IsNotNull (bridge.GetAutomationPropertyEventFrom (provider, TogglePatternIdentifiers.ToggleStateProperty.Id), string.Format ("toggleProvider.Toggle didn't raise any event. Old {0} Current: {1}", toggleState, toggleProvider.ToggleState)); ValidateToggleState (toggleState, toggleProvider.ToggleState); toggleState = toggleProvider.ToggleState; } while (firstState != toggleState); } catch (ElementNotEnabledException) { if (!enabled) Assert.Fail ("Your provider is disabled but didn't throw ElementNotEnabledException."); } }
protected virtual void TestTextPatterns (IRawElementProviderSimple provider) { // http://msdn.microsoft.com/en-us/library/ms752073.aspx Assert.IsFalse ((bool) provider.GetPropertyValue (AutomationElementIdentifiers.IsValuePatternAvailableProperty.Id), "Text ControlType must NOT support IValueProvider"); // DEPENDS: ITextProvider // DEPENDS: ITableItemProvider // DEPENDS: IRangeValueProvider Assert.AreEqual (Catalog.GetString ("text"), provider.GetPropertyValue (AutomationElementIdentifiers.LocalizedControlTypeProperty.Id), "LocalizedControlTypeProperty"); }