public void ToolStripScrollButtonAccessibleObject_FragmentNavigate_ReturnsNull_If_ScrollButtonsHidden(Type itemType, bool createControl)
        {
            using ToolStrip toolStrip = new();

            if (createControl)
            {
                toolStrip.CreateControl();
            }

            using ToolStripDropDownItem ownerItem = ReflectionHelper.InvokePublicConstructor <ToolStripDropDownItem>(itemType);
            SubToolStripDropDownMenu dropDownMenu = new SubToolStripDropDownMenu(ownerItem, true, false);

            toolStrip.Items.Add(ownerItem);
            ownerItem.TestAccessor().Dynamic.dropDown = dropDownMenu;
            ownerItem.DropDownItems.Add(new ToolStripDropDownButton("Item 1"));
            ownerItem.DropDownItems.Add(new ToolStripDropDownButton("Item 2"));

            dropDownMenu.UpdateDisplayedItems();

            AccessibleObject accessibleObject      = dropDownMenu.AccessibilityObject;
            AccessibleObject itemAccessibleObject1 = dropDownMenu.Items[0].AccessibilityObject;
            AccessibleObject itemAccessibleObject2 = dropDownMenu.Items[1].AccessibilityObject;

            Assert.Equal(itemAccessibleObject1, accessibleObject.FragmentNavigate(NavigateDirection.FirstChild));
            Assert.Equal(itemAccessibleObject2, accessibleObject.FragmentNavigate(NavigateDirection.LastChild));

            Assert.Null(itemAccessibleObject1.FragmentNavigate(NavigateDirection.PreviousSibling));
            Assert.Equal(itemAccessibleObject2, itemAccessibleObject1.FragmentNavigate(NavigateDirection.NextSibling));
            Assert.Equal(itemAccessibleObject1, itemAccessibleObject2.FragmentNavigate(NavigateDirection.PreviousSibling));
            Assert.Null(itemAccessibleObject2.FragmentNavigate(NavigateDirection.NextSibling));
        }
        public void ToolStripScrollButtonAccessibleObject_Properties_ReturnExpected()
        {
            using ToolStrip toolStrip             = new();
            using ToolStripDropDownItem ownerItem = new ToolStripDropDownButton();
            SubToolStripDropDownMenu dropDownMenu = new SubToolStripDropDownMenu(ownerItem, true, true);

            toolStrip.Items.Add(ownerItem);
            ownerItem.TestAccessor().Dynamic.dropDown = dropDownMenu;
            ownerItem.DropDownItems.Add(new ToolStripDropDownButton("Item 1"));
            ownerItem.DropDownItems.Add(new ToolStripDropDownButton("Item 2"));
            dropDownMenu.UpdateDisplayedItems();

            AccessibleObject upScrollButtonAccessibleObject   = dropDownMenu.UpScrollButton.AccessibilityObject;
            AccessibleObject downScrollButtonAccessibleObject = dropDownMenu.DownScrollButton.AccessibilityObject;

            var expectedUpButtonName   = SR.ToolStripScrollButtonUpAccessibleName;
            var expectedDownButtonName = SR.ToolStripScrollButtonDownAccessibleName;
            var expectedDefaultAction  = SR.AccessibleActionPress;
            var expectedControlType    = UIA.ButtonControlTypeId;

            Assert.Equal(expectedUpButtonName, upScrollButtonAccessibleObject.Name);
            Assert.Equal(expectedDefaultAction, upScrollButtonAccessibleObject.DefaultAction);
            Assert.Equal(expectedControlType, upScrollButtonAccessibleObject.GetPropertyValue(UIA.ControlTypePropertyId));

            Assert.Equal(expectedDownButtonName, downScrollButtonAccessibleObject.Name);
            Assert.Equal(expectedDefaultAction, downScrollButtonAccessibleObject.DefaultAction);
            Assert.Equal(expectedControlType, downScrollButtonAccessibleObject.GetPropertyValue(UIA.ControlTypePropertyId));
        }