File: System\Windows\Forms\AccessibleObjects\ToolStripControlHost.ToolStripControlHostAccessibleObjectTests.cs
Web Access
Project: src\src\System.Windows.Forms\tests\UnitTests\System.Windows.Forms.Tests.csproj (System.Windows.Forms.Tests)
// 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.ToolStripControlHost;
 
namespace System.Windows.Forms.Tests.AccessibleObjects;
 
public class ToolStripControlHost_ToolStripControlHostAccessibleObjectTests
{
    [WinFormsFact]
    public void ToolStripControlHostAccessibleObject_Ctor_OwnerToolStripControlHostCannotBeNull()
    {
        Assert.Throws<ArgumentNullException>(() => new ToolStripControlHostAccessibleObject(null));
    }
 
    [WinFormsFact]
    public void ToolStripControlHostAccessibleObject_Ctor_Default()
    {
        using Control control = new();
        using ToolStripControlHost toolStrip = new(control);
        var accessibleObject = (ToolStripControlHostAccessibleObject)toolStrip.AccessibilityObject;
 
        Assert.NotNull(accessibleObject);
        Assert.Equal(toolStrip, accessibleObject.Owner);
        Assert.False(toolStrip.Control.IsHandleCreated);
    }
 
    [WinFormsFact]
    public void ToolStripControlHostAccessibleObject_DefaultAction_ReturnsExpected()
    {
        using Control control = new();
        using ToolStripControlHost toolStrip = new(control);
        var accessibleObject = (ToolStripControlHostAccessibleObject)toolStrip.AccessibilityObject;
 
        Assert.Equal(string.Empty, accessibleObject.DefaultAction);
        Assert.False(toolStrip.Control.IsHandleCreated);
    }
 
    [WinFormsFact]
    public void ToolStripControlHostAccessibleObject_Role_ReturnsExpected()
    {
        AccessibleRole testRole = AccessibleRole.Cell;
        using Control control = new();
        using ToolStripControlHost toolStrip = new(control);
        var accessibleObject = (ToolStripControlHostAccessibleObject)toolStrip.AccessibilityObject;
 
        control.AccessibleRole = testRole;
 
        Assert.Equal(testRole, accessibleObject.Role);
        Assert.False(toolStrip.Control.IsHandleCreated);
    }
 
    [WinFormsFact]
    public void ToolStripControlHostAccessibleObject_FragmentNavigate_ReturnsExpected()
    {
        using Control control = new();
        using ToolStripControlHost toolStrip = new(control);
        var accessibleObject = (ToolStripControlHostAccessibleObject)toolStrip.AccessibilityObject;
 
        Assert.Equal(control.AccessibilityObject, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild));
        Assert.Equal(control.AccessibilityObject, accessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild));
        Assert.False(toolStrip.Control.IsHandleCreated);
    }
 
    [WinFormsFact]
    public void ToolStripControlHostAccessibleObject_ReleaseUiaProvider_ToolStripControlHostControl()
    {
        using ToolStrip toolStrip = new();
        using Control control = new();
        using ToolStripControlHost toolStripControlHost = new(control);
        toolStrip.Items.Add(toolStripControlHost);
        toolStripControlHost.Parent = toolStrip;
        toolStrip.CreateControl();
 
        _ = toolStripControlHost.AccessibilityObject;
        _ = toolStripControlHost.Control.AccessibilityObject;
 
        Assert.True(toolStripControlHost.Control.IsAccessibilityObjectCreated);
 
        toolStripControlHost.ReleaseUiaProvider();
 
        Assert.False(toolStripControlHost.Control.IsAccessibilityObjectCreated);
    }
}