You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
5.4 KiB

  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using UnityEngine.Experimental.UIElements;
  4. using NUnit.Framework;
  5. namespace UnityEditor.PackageManager.UI.Tests
  6. {
  7. internal class PackageDetailsTests : UITests<PackageManagerWindow>
  8. {
  9. [SetUp]
  10. public void Setup()
  11. {
  12. PackageCollection.Instance.SetFilter(PackageFilter.Local);
  13. PackageCollection.Instance.UpdatePackageCollection(true);
  14. SetSearchPackages(Enumerable.Empty<PackageInfo>());
  15. SetListPackages(Enumerable.Empty<PackageInfo>());
  16. Factory.ResetOperations();
  17. }
  18. [Test]
  19. public void Show_CorrectTag()
  20. {
  21. var packageInfo = PackageSets.Instance.Single();
  22. foreach (var tag in new List<string>
  23. {
  24. PackageTag.preview.ToString(),
  25. PackageTag.verified.ToString(),
  26. "usertag" // Any other unsupported tag a user might use
  27. })
  28. {
  29. packageInfo.IsVerified = PackageTag.verified.ToString() == tag;
  30. packageInfo.Version = packageInfo.Version.Change(null, null, null, tag);
  31. var package = new Package(packageInfo.Name, new List<PackageInfo> {packageInfo});
  32. var details = Container.Q<PackageDetails>("detailsGroup");
  33. details.SetPackage(package);
  34. // Check for every UI-supported tags that visibility is correct
  35. Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.preview)) == packageInfo.IsPreview);
  36. Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.verified)) == packageInfo.IsVerified);
  37. Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.local)) == packageInfo.IsLocal);
  38. Assert.IsTrue(UIUtils.IsElementVisible(details.GetTag(PackageTag.inDevelopment)) == packageInfo.IsInDevelopment);
  39. }
  40. }
  41. [Test]
  42. public void Show_CorrectLabel_UpToDate()
  43. {
  44. SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Registry, "name", "1.0.0", true)});
  45. var details = Container.Q<PackageDetails>("detailsGroup");
  46. Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.UpToDate]);
  47. Assert.IsFalse(details.UpdateButton.enabledSelf);
  48. Assert.IsTrue(details.VersionPopup.enabledSelf);
  49. }
  50. [Test]
  51. public void Show_CorrectLabel_Install()
  52. {
  53. SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Registry, "name", "1.0.0", false)});
  54. PackageCollection.Instance.SetFilter(PackageFilter.All);
  55. var details = Container.Q<PackageDetails>("detailsGroup");
  56. Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.Add]);
  57. Assert.IsTrue(details.UpdateButton.enabledSelf);
  58. Assert.IsTrue(details.VersionPopup.enabledSelf);
  59. }
  60. [Test]
  61. public void Show_CorrectLabel_UpdateTo()
  62. {
  63. SetListPackages(new List<PackageInfo>
  64. {
  65. PackageSets.Instance.Single(PackageSource.Registry, "name", "1.0.0", true),
  66. PackageSets.Instance.Single(PackageSource.Registry, "name", "2.0.0", false)
  67. });
  68. var details = Container.Q<PackageDetails>("detailsGroup");
  69. Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.Update]);
  70. Assert.IsTrue(details.UpdateButton.enabledSelf);
  71. Assert.IsTrue(details.VersionPopup.enabledSelf);
  72. }
  73. [Test]
  74. public void Show_HideLabel_Embedded()
  75. {
  76. SetListPackages(new List<PackageInfo>
  77. {
  78. PackageSets.Instance.Single(PackageSource.Embedded, "name", "1.0.0", true),
  79. PackageSets.Instance.Single(PackageSource.Registry, "name", "2.0.0", false)
  80. });
  81. var details = Container.Q<PackageDetails>("detailsGroup");
  82. Assert.IsFalse(details.UpdateBuiltIn.visible);
  83. Assert.IsFalse(details.UpdateCombo.visible);
  84. Assert.IsFalse(details.UpdateButton.visible);
  85. }
  86. [Test]
  87. public void Show_CorrectLabel_LocalFolder()
  88. {
  89. SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Local, "name", "1.0.0")});
  90. var details = Container.Q<PackageDetails>("detailsGroup");
  91. Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.UpToDate]);
  92. Assert.IsFalse(details.UpdateButton.enabledSelf);
  93. Assert.IsTrue(details.VersionPopup.enabledSelf);
  94. }
  95. [Test]
  96. public void Show_CorrectLabel_Git()
  97. {
  98. SetListPackages(new List<PackageInfo> {PackageSets.Instance.Single(PackageSource.Git, "name", "1.0.0")});
  99. var details = Container.Q<PackageDetails>("detailsGroup");
  100. Assert.IsTrue(details.UpdateButton.text == PackageDetails.PackageActionVerbs[(int)PackageDetails.PackageAction.Git]);
  101. Assert.IsFalse(details.UpdateButton.enabledSelf);
  102. Assert.IsFalse(details.VersionPopup.enabledSelf);
  103. }
  104. }
  105. }