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

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
}