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.
80 lines
1.9 KiB
80 lines
1.9 KiB
package main
|
|
|
|
import "testing"
|
|
|
|
func TestDebPackageName(t *testing.T) {
|
|
tests := map[string]string{
|
|
"firefox_120.0_arm64.deb": "firefox",
|
|
"libgtk-3-0_3.22.30_arm64.deb": "libgtk-3-0",
|
|
"firefox.deb": "firefox",
|
|
"plain-package": "plain-package",
|
|
}
|
|
|
|
for input, want := range tests {
|
|
if got := debPackageName(input); got != want {
|
|
t.Fatalf("debPackageName(%q) = %q, want %q", input, got, want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestUnsafeFirefoxDebPackages(t *testing.T) {
|
|
packages := []string{
|
|
"firefox",
|
|
"libgtk-3-0",
|
|
"dpkg",
|
|
"coreutils",
|
|
"libc6",
|
|
"tar",
|
|
"dpkg",
|
|
}
|
|
want := []string{"coreutils", "dpkg", "libc6", "tar"}
|
|
|
|
got := unsafeFirefoxDebPackages(packages)
|
|
if !stringSlicesEqual(got, want) {
|
|
t.Fatalf("unsafeFirefoxDebPackages() = %v, want %v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestFirefoxBundleInstallPlanDetectsBasePackages(t *testing.T) {
|
|
packages := []string{
|
|
"firefox",
|
|
"libgtk-3-0",
|
|
"dpkg",
|
|
"coreutils",
|
|
"libc6",
|
|
"tar",
|
|
}
|
|
|
|
plan := firefoxBundleInstallPlanFromPackages(packages)
|
|
wantBlocked := []string{"coreutils", "dpkg", "libc6", "tar"}
|
|
if !plan.HasFirefoxPackage {
|
|
t.Fatal("plan should detect firefox package")
|
|
}
|
|
if plan.TotalPackageCount != len(packages) {
|
|
t.Fatalf("TotalPackageCount = %d, want %d", plan.TotalPackageCount, len(packages))
|
|
}
|
|
if !stringSlicesEqual(plan.BaseSystemPackages, wantBlocked) {
|
|
t.Fatalf("BaseSystemPackages = %v, want %v", plan.BaseSystemPackages, wantBlocked)
|
|
}
|
|
}
|
|
|
|
func TestOptionalFirefoxDebPackageNames(t *testing.T) {
|
|
got := optionalFirefoxDebPackageNames()
|
|
want := []string{"lubuntu-icon-theme"}
|
|
if !stringSlicesEqual(got, want) {
|
|
t.Fatalf("optionalFirefoxDebPackageNames() = %v, want %v", got, want)
|
|
}
|
|
}
|
|
|
|
func stringSlicesEqual(left []string, right []string) bool {
|
|
if len(left) != len(right) {
|
|
return false
|
|
}
|
|
for i := range left {
|
|
if left[i] != right[i] {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|