mirror of
https://github.com/storytold/Azure-Kinect-Sample-for-Unity.git
synced 2026-10-15 00:03:58 +00:00
sample
This commit is contained in:
+122
@@ -0,0 +1,122 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine.Experimental.UIElements;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace UnityEditor.PackageManager.UI.Tests
|
||||
{
|
||||
internal class PackageDetailsTests : UITests<PackageManagerWindow>
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
PackageCollection.Instance.SetFilter(PackageFilter.Local);
|
||||
PackageCollection.Instance.UpdatePackageCollection(true);
|
||||
SetSearchPackages(Enumerable.Empty<PackageInfo>());
|
||||
SetListPackages(Enumerable.Empty<PackageInfo>());
|
||||
Factory.ResetOperations();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_CorrectTag()
|
||||
{
|
||||
var packageInfo = PackageSets.Instance.Single();
|
||||
foreach (var tag in new List<string>
|
||||
{
|
||||
PackageTag.preview.ToString(),
|
||||
PackageTag.verified.ToString(),
|
||||
"usertag" // Any other unsupported tag a user might use
|
||||
})
|
||||
{
|
||||
packageInfo.IsVerified = PackageTag.verified.ToString() == tag;
|
||||
packageInfo.Version = packageInfo.Version.Change(null, null, null, tag);
|
||||
var package = new Package(packageInfo.Name, new List<PackageInfo> {packageInfo});
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
details.SetPackage(package);
|
||||
|
||||
// Check for every UI-supported tags that visibility is correct
|
||||
Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.preview)) == packageInfo.IsPreview);
|
||||
Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.verified)) == packageInfo.IsVerified);
|
||||
Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.local)) == packageInfo.IsLocal);
|
||||
Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.inDevelopment)) == packageInfo.IsInDevelopment);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_CorrectLabel_UpToDate()
|
||||
{
|
||||
SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Registry, "name", "1.0.0", true)});
|
||||
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.UpToDate]);
|
||||
Assert.IsFalse(details.UpdateButton.enabledSelf);
|
||||
Assert.IsTrue(details.VersionPopup.enabledSelf);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_CorrectLabel_Install()
|
||||
{
|
||||
SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Registry, "name", "1.0.0", false)});
|
||||
|
||||
PackageCollection.Instance.SetFilter(PackageFilter.All);
|
||||
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.Add]);
|
||||
Assert.IsTrue(details.UpdateButton.enabledSelf);
|
||||
Assert.IsTrue(details.VersionPopup.enabledSelf);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_CorrectLabel_UpdateTo()
|
||||
{
|
||||
SetListPackages(new List<PackageInfo>
|
||||
{
|
||||
PackageSets.Instance.Single(PackageSource.Registry, "name", "1.0.0", true),
|
||||
PackageSets.Instance.Single(PackageSource.Registry, "name", "2.0.0", false)
|
||||
});
|
||||
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.Update]);
|
||||
Assert.IsTrue(details.UpdateButton.enabledSelf);
|
||||
Assert.IsTrue(details.VersionPopup.enabledSelf);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_HideLabel_Embedded()
|
||||
{
|
||||
SetListPackages(new List<PackageInfo>
|
||||
{
|
||||
PackageSets.Instance.Single(PackageSource.Embedded, "name", "1.0.0", true),
|
||||
PackageSets.Instance.Single(PackageSource.Registry, "name", "2.0.0", false)
|
||||
});
|
||||
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
Assert.IsFalse(details.UpdateBuiltIn.visible);
|
||||
Assert.IsFalse(details.UpdateCombo.visible);
|
||||
Assert.IsFalse(details.UpdateButton.visible);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_CorrectLabel_LocalFolder()
|
||||
{
|
||||
SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Local, "name", "1.0.0")});
|
||||
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.UpToDate]);
|
||||
Assert.IsFalse(details.UpdateButton.enabledSelf);
|
||||
Assert.IsTrue(details.VersionPopup.enabledSelf);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Show_CorrectLabel_Git()
|
||||
{
|
||||
SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Git, "name", "1.0.0")});
|
||||
|
||||
var details = Container.Q<PackageDetails>("detailsGroup");
|
||||
Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.Git]);
|
||||
Assert.IsFalse(details.UpdateButton.enabledSelf);
|
||||
Assert.IsFalse(details.VersionPopup.enabledSelf);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d028fbbad11524d13a069f495ddcf01c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine.Experimental.UIElements;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace UnityEditor.PackageManager.UI.Tests
|
||||
{
|
||||
internal class PackageManagerWindowTests : UITests<PackageManagerWindow>
|
||||
{
|
||||
// Filter change shows correct result
|
||||
private Action<IEnumerable<Package>> onPackageChangedEvent; // TODO: We need to have a discussion on event de-registration
|
||||
private bool showPreviewPackagesPreviousValue;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
showPreviewPackagesPreviousValue = PackageManagerPrefs.ShowPreviewPackages;
|
||||
PackageManagerPrefs.ShowPreviewPackages = true;
|
||||
PackageCollection.Instance.SetFilter(PackageFilter.Local);
|
||||
SetListPackages(Enumerable.Empty<PackageInfo>());
|
||||
SetSearchPackages(Enumerable.Empty<PackageInfo>());
|
||||
Factory.ResetOperations();
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
PackageCollection.Instance.OnPackagesChanged -= onPackageChangedEvent;
|
||||
PackageManagerPrefs.ShowPreviewPackages = showPreviewPackagesPreviousValue;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void When_Default_FirstPackageUIElement_HasSelectedClass()
|
||||
{
|
||||
onPackageChangedEvent = packages =>
|
||||
{
|
||||
var package = Container.Query(null, "package").First();
|
||||
|
||||
Assert.NotNull(package);
|
||||
Assert.IsTrue(package.ClassListContains(PackageItem.SelectedClassName));
|
||||
};
|
||||
|
||||
PackageCollection.Instance.OnPackagesChanged += onPackageChangedEvent;
|
||||
SetListPackages(PackageSets.Instance.Many(5, true));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void When_PackageCollection_Updates_PackageList_Updates()
|
||||
{
|
||||
var packages = PackageSets.Instance.Outdated();
|
||||
var current = packages.ToList().First();
|
||||
var latest = packages.ToList().Last();
|
||||
|
||||
SetListPackages(packages);
|
||||
Factory.AddOperation = new MockAddOperation(Factory, latest);
|
||||
|
||||
var package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
|
||||
onPackageChangedEvent = newpackages =>
|
||||
{
|
||||
package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
|
||||
Assert.IsTrue(package.Current.PackageId == latest.PackageId);
|
||||
|
||||
var packageItem = Container.Query(null, "package").Build().First();
|
||||
var label = packageItem.Q<Label>("packageName");
|
||||
var version = packageItem.Q<Label>("packageVersion");
|
||||
var state = packageItem.Q<Label>("packageState");
|
||||
var hasOutdatedClass = state.ClassListContains(PackageItem.GetIconStateId(PackageState.Outdated));
|
||||
Assert.IsTrue(latest.Name == string.Format("com.unity.{0}", label.text));
|
||||
Assert.IsTrue(latest.Version == version.text);
|
||||
Assert.IsFalse(hasOutdatedClass);
|
||||
};
|
||||
|
||||
package.AddSignal.OnOperation += operation =>
|
||||
{
|
||||
operation.OnOperationSuccess += packageInfo =>
|
||||
{
|
||||
PackageCollection.Instance.OnPackagesChanged += onPackageChangedEvent;
|
||||
};
|
||||
};
|
||||
|
||||
package.Update();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void When_PackageCollection_Update_Fails_Package_Stay_Current()
|
||||
{
|
||||
var packages = PackageSets.Instance.Outdated();
|
||||
var current = packages.ToList().First();
|
||||
var latest = packages.ToList().Last();
|
||||
|
||||
SetListPackages(packages);
|
||||
|
||||
var error = MakeError(ErrorCode.Unknown, "Fake error");
|
||||
Factory.AddOperation = new MockAddOperation(Factory, latest);
|
||||
Factory.AddOperation.ForceError = error;
|
||||
|
||||
var package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
|
||||
package.AddSignal.OnOperation += operation =>
|
||||
{
|
||||
operation.OnOperationError += operationError => { Assert.IsTrue(error == operationError); };
|
||||
operation.OnOperationFinalized += () =>
|
||||
{
|
||||
Assert.IsTrue(package.Current.PackageId ==
|
||||
current.PackageId); // Make sure package hasn't been upgraded
|
||||
|
||||
var packageItem = Container.Query(null, "package").Build().First();
|
||||
var label = packageItem.Q<Label>("packageName");
|
||||
var version = packageItem.Q<Label>("packageVersion");
|
||||
var state = packageItem.Q<Label>("packageState");
|
||||
var hasErrorClass = state.ClassListContains(PackageItem.GetIconStateId(PackageState.Error));
|
||||
Assert.IsTrue(current.Name == string.Format("com.unity.{0}", label.text));
|
||||
Assert.IsTrue(current.Version == version.text);
|
||||
Assert.IsTrue(hasErrorClass);
|
||||
};
|
||||
};
|
||||
|
||||
package.Update();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void When_PackageCollection_Remove_PackageLists_Updated()
|
||||
{
|
||||
var packages = PackageSets.Instance.Many(5);
|
||||
var current = packages.ToList().First();
|
||||
|
||||
SetListPackages(packages);
|
||||
var package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
Assert.IsNotNull(package);
|
||||
|
||||
onPackageChangedEvent = allPackages =>
|
||||
{
|
||||
package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
Assert.IsNull(package);
|
||||
};
|
||||
|
||||
PackageCollection.Instance.OnPackagesChanged += onPackageChangedEvent;
|
||||
|
||||
package.Remove();
|
||||
PackageCollection.Instance.FetchListOfflineCache(true);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void When_PackageCollection_Remove_Fails_PackageLists_NotUpdated()
|
||||
{
|
||||
var packages = PackageSets.Instance.Many(5);
|
||||
var current = packages.ToList().First();
|
||||
|
||||
var error = MakeError(ErrorCode.Unknown, "Fake error");
|
||||
Factory.RemoveOperation = new MockRemoveOperation(Factory) {ForceError = error};
|
||||
SetListPackages(packages);
|
||||
var package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
Assert.IsNotNull(package);
|
||||
|
||||
package.RemoveSignal.OnOperation += operation =>
|
||||
{
|
||||
operation.OnOperationError += operationError => { Assert.AreEqual(error, operationError); };
|
||||
operation.OnOperationFinalized += () =>
|
||||
{
|
||||
package = PackageCollection.Instance.GetPackageByName(current.Name);
|
||||
Assert.IsNotNull(package);
|
||||
};
|
||||
};
|
||||
|
||||
package.Remove();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void When_Filter_Changes_Shows_Correct_List()
|
||||
{
|
||||
var packagesLocal = PackageSets.Instance.Many(2);
|
||||
var packagesAll = PackageSets.Instance.Many(5);
|
||||
|
||||
SetListPackages(packagesLocal);
|
||||
SetSearchPackages(packagesAll);
|
||||
|
||||
onPackageChangedEvent = packages =>
|
||||
{
|
||||
foreach (var package in packagesAll)
|
||||
{
|
||||
Assert.IsTrue(packages.Any(updatePackage => updatePackage.Current == package));
|
||||
}
|
||||
};
|
||||
|
||||
PackageCollection.Instance.OnPackagesChanged += onPackageChangedEvent;
|
||||
|
||||
PackageCollection.Instance.SetFilter(PackageFilter.All);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ListPackages_UsesCache()
|
||||
{
|
||||
PackageCollection.Instance.SetFilter(PackageFilter.Local); // Set filter to use list
|
||||
SetListPackages(PackageSets.Instance.Many(2));
|
||||
|
||||
Assert.IsTrue(PackageCollection.Instance.LatestListPackages.Any()); // Make sure packages are cached
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SearchPackages_UsesCache()
|
||||
{
|
||||
PackageCollection.Instance.SetFilter(PackageFilter.All); // Set filter to use search
|
||||
SetSearchPackages(PackageSets.Instance.Many(2));
|
||||
|
||||
Assert.IsTrue(PackageCollection.Instance.LatestSearchPackages.Any()); // Make sure packages are cached
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 063b1587caa4a47f396741f4e69d108c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user