#if UNITY_INCLUDE_TESTS
using System;
using UnityEngine;
using UnityEngine.UIElements;
namespace UnityEditor.Sequences
{
///
/// Utility class to help internal tests query specific information in the AssetCollectionsTreeView.
///
partial class AssetCollectionsTreeView
{
internal bool ContainsTreeViewItemOfName(string name)
{
ExpandAll();
for (int index = viewController.GetItemsCount() - 1; index >= 0; --index)
{
int id = GetIdForIndex(index);
var data = GetItemDataForId(id);
if (data.treeViewItemType == AssetCollectionTreeViewItem.Type.Item
&& data.asset.name == name)
return true;
}
return false;
}
///
/// Gets the index of a matching .
///
///
///
///
int GetIndexOf(Predicate match)
{
ExpandAll();
for (int index = viewController.GetItemsCount() - 1; index >= 0; --index)
{
int id = GetIdForIndex(index);
var data = GetItemDataForId(id);
if (match(data))
return index;
}
return -1;
}
internal int GetIndexOfAssetCollectionOfName(string name)
{
return GetIndexOf(item =>
item.treeViewItemType == AssetCollectionTreeViewItem.Type.Header
&& item.collectionName == name);
}
internal int GetIndexOfSequenceAsset(GameObject asset)
{
return GetIndexOf(item =>
item.treeViewItemType == AssetCollectionTreeViewItem.Type.Item
&& item.asset == asset);
}
internal VisualElement GetVisualElementFromIndex(int index)
{
ExpandAll();
var rootElement = GetRootElementForIndex(index);
return rootElement.Q(itemClassName);
}
internal void BeginRenameItem(int index)
{
BeginRenameAtIndex(index, 0);
}
internal void BeginItemCreation(int index)
{
BeginItemCreation(index);
}
internal GameObject GetAssetForIndex(int index)
{
var itemData = GetItemDataForIndex(index);
return itemData.asset;
}
}
}
#endif // UNITY_INCLUDE_TESTS