#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