// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Windows.Win32.UI.Accessibility; using static System.Windows.Forms.ToolStripSplitButton; namespace System.Windows.Forms.Tests.AccessibleObjects; public class ToolStripSplitButton_ToolStripSplitButtonExAccessibleObjectTests { [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_Ctor_OwnerToolStripSplitButtonCannotBeNull() { Assert.Throws<ArgumentNullException>(() => new ToolStripSplitButtonExAccessibleObject(null)); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_ControlType_ReturnsExpected() { using ToolStripSplitButton toolStripSplitButton = new(); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); Assert.Equal(UIA_CONTROLTYPE_ID.UIA_ButtonControlTypeId, (UIA_CONTROLTYPE_ID)(int)accessibleObject.GetPropertyValue(UIA_PROPERTY_ID.UIA_ControlTypePropertyId)); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_IsIAccessibleExSupported_ReturnsExpected() { using ToolStripSplitButton toolStripSplitButton = new(); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); Assert.True(accessibleObject.IsIAccessibleExSupported()); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_DropDownItemsCount_ReturnsExpected_IfDropDownCollapsed() { using ToolStripSplitButton toolStripSplitButton = new(); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); Assert.Equal(ExpandCollapseState.ExpandCollapseState_Collapsed, accessibleObject.ExpandCollapseState); Assert.Equal(0, accessibleObject.TestAccessor().Dynamic.DropDownItemsCount); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_FragmentNavigate_Parent_ReturnsExpected() { using ToolStripSplitButton toolStripSplitButton = new(); using ToolStrip toolStrip = new(); toolStrip.Items.Add(toolStripSplitButton); toolStrip.PerformLayout(); toolStrip.CreateControl(); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); AccessibleObject expected = toolStrip.AccessibilityObject; Assert.Equal(expected, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_Parent)); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_FragmentNavigate_Parent_ReturnsNull_IfHandleNotCreated() { using ToolStripSplitButton toolStripSplitButton = new(); using ToolStrip toolStrip = new(); toolStrip.Items.Add(toolStripSplitButton); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); Assert.Null(accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_Parent)); Assert.False(toolStrip.IsHandleCreated); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_FragmentNavigate_Child_ReturnsExpected() { using ToolStripSplitButton toolStripSplitButton = new(); ToolStripItem item1 = toolStripSplitButton.DropDownItems.Add(string.Empty); ToolStripItem item2 = toolStripSplitButton.DropDownItems.Add(string.Empty); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); toolStripSplitButton.DropDown.Show(); Assert.Equal(item1.AccessibilityObject, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild)); Assert.Equal(item2.AccessibilityObject, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild)); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_FragmentNavigate_Child_ReturnsNull_IfDropDownNotOpened() { using ToolStripSplitButton toolStripSplitButton = new(); toolStripSplitButton.DropDownItems.Add(string.Empty); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); Assert.Null(accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild)); Assert.Null(accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild)); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_FragmentNavigate_Child_ReturnsNull_IfNoDropDownItems() { using ToolStripSplitButton toolStripSplitButton = new(); ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); Assert.Null(accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild)); Assert.Null(accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild)); } [WinFormsFact] public void ToolStripSplitButtonExAccessibleObject_FragmentNavigate_Child_ReturnsExpected_IfItemsAligned() { using ToolStripSplitButton toolStripSplitButton = new(); ToolStripItem item1 = toolStripSplitButton.DropDownItems.Add(string.Empty); ToolStripItem item2 = toolStripSplitButton.DropDownItems.Add(string.Empty); item1.Alignment = ToolStripItemAlignment.Right; ToolStripSplitButtonExAccessibleObject accessibleObject = new(toolStripSplitButton); toolStripSplitButton.DropDown.Show(); Assert.Equal(item1.AccessibilityObject, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild)); Assert.Equal(item2.AccessibilityObject, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild)); } } |