PackageDetailsTests.cs
5.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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.Unity);
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);
}
}
}