|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#nullable disable
using Windows.Win32.UI.Accessibility;
using static System.Windows.Forms.ListViewItem;
namespace System.Windows.Forms.Tests.AccessibleObjects;
public class ListViewItem_ListViewItemWithImageAccessibleObjectTests
{
[WinFormsTheory]
[MemberData(nameof(GetViewTheoryData))]
public void ListViewItemListAccessibleObject_FragmentNavigate_Children_ReturnsNull_WithoutImage(View view)
{
using ListView control = new();
control.View = view;
control.Items.Add(new ListViewItem());
AccessibleObject listViewItemAccessibleObject = control.Items[0].AccessibilityObject;
Assert.Null(listViewItemAccessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild));
Assert.Null(listViewItemAccessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild));
Assert.False(control.IsHandleCreated);
}
[WinFormsTheory]
[MemberData(nameof(GetViewTheoryData))]
public void ListViewItemListAccessibleObject_FragmentNavigate_Children_IsExpected_WithImage(View view)
{
using ImageList imageCollection = new();
imageCollection.Images.Add(Form.DefaultIcon);
ListViewItem listViewItem = new("Test", 0);
using ListView control = new()
{
View = view,
SmallImageList = imageCollection,
LargeImageList = imageCollection
};
if (!control.IsHandleCreated)
{
Assert.NotEqual(IntPtr.Zero, control.Handle);
}
control.Items.Add(listViewItem);
AccessibleObject listViewItemAccessibleObject = control.Items[0].AccessibilityObject;
var firstChild = listViewItemAccessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_FirstChild);
var lastChild = listViewItemAccessibleObject.FragmentNavigate(NavigateDirection.NavigateDirection_LastChild);
Assert.IsType<ListViewItemImageAccessibleObject>(firstChild);
Assert.IsType<ListViewItemImageAccessibleObject>(lastChild);
Assert.Same(firstChild, lastChild);
Assert.True(control.IsHandleCreated);
}
[WinFormsTheory]
[MemberData(nameof(GetViewTheoryData))]
public void ListViewItemListAccessibleObject_GetChild_ReturnsNull_WithoutImage(View view)
{
using ListView control = new();
control.View = view;
control.Items.Add(new ListViewItem());
AccessibleObject listViewItemAccessibleObject = control.Items[0].AccessibilityObject;
Assert.Null(listViewItemAccessibleObject.GetChild(0));
Assert.False(control.IsHandleCreated);
}
[WinFormsTheory]
[MemberData(nameof(GetViewTheoryData))]
public void ListViewItemListAccessibleObject_GetChild_IsExpected_WithImage(View view)
{
using ImageList imageCollection = new();
imageCollection.Images.Add(Form.DefaultIcon);
ListViewItem listViewItem = new("Test", 0);
using ListView control = new()
{
View = view,
SmallImageList = imageCollection,
LargeImageList = imageCollection
};
control.Items.Add(listViewItem);
AccessibleObject listViewItemAccessibleObject = control.Items[0].AccessibilityObject;
Assert.IsType<ListViewItemImageAccessibleObject>(listViewItemAccessibleObject.GetChild(0));
Assert.False(control.IsHandleCreated);
}
[WinFormsTheory]
[MemberData(nameof(GetViewTheoryData))]
public void ListViewItemListAccessibleObject_GetChildCount_WithoutImage(View view)
{
using ListView control = new();
control.View = view;
control.Items.Add(new ListViewItem());
control.CreateControl();
AccessibleObject listViewItemAccessibleObject = control.Items[0].AccessibilityObject;
Assert.Equal(AccessibleObject.InvalidIndex, listViewItemAccessibleObject.GetChildCount());
Assert.True(control.IsHandleCreated);
}
[WinFormsTheory]
[MemberData(nameof(GetViewTheoryData))]
public void ListViewItemListAccessibleObject_GetChildCount_WithImage(View view)
{
using ImageList imageCollection = new();
imageCollection.Images.Add(Form.DefaultIcon);
ListViewItem listViewItem = new("Test", 0);
using ListView control = new()
{
View = view,
SmallImageList = imageCollection,
LargeImageList = imageCollection
};
control.Items.Add(listViewItem);
control.CreateControl();
AccessibleObject listViewItemAccessibleObject = control.Items[0].AccessibilityObject;
Assert.Equal(1, listViewItemAccessibleObject.GetChildCount());
Assert.True(control.IsHandleCreated);
}
public static TheoryData<View> GetViewTheoryData()
{
return
[
View.LargeIcon,
View.SmallIcon
];
}
}
|