74 lines
2.1 KiB
Go
74 lines
2.1 KiB
Go
package codesign_test
|
|
|
|
import (
|
|
"context"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/leonmika/wails-release/internal/codesign"
|
|
"github.com/leonmika/wails-release/internal/runner"
|
|
)
|
|
|
|
func TestCreateKeychain_BuildsCorrectArgs(t *testing.T) {
|
|
f := &runner.Fake{}
|
|
f.On("security", nil).Return(nil, nil)
|
|
|
|
kc, err := codesign.CreateKeychain(context.Background(), f, "/tmp/foo.keychain", "pw")
|
|
if err != nil {
|
|
t.Fatalf("unexpected: %v", err)
|
|
}
|
|
if kc.Path != "/tmp/foo.keychain" {
|
|
t.Fatalf("kc.Path got %q want /tmp/foo.keychain", kc.Path)
|
|
}
|
|
want := [][]string{
|
|
{"create-keychain", "-p", "pw", "/tmp/foo.keychain"},
|
|
{"set-keychain-settings", "-lut", "21600", "/tmp/foo.keychain"},
|
|
{"unlock-keychain", "-p", "pw", "/tmp/foo.keychain"},
|
|
}
|
|
for i, w := range want {
|
|
if !reflect.DeepEqual(f.Calls[i].Args, w) {
|
|
t.Fatalf("call %d: got %v want %v", i, f.Calls[i].Args, w)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestImportP12_BuildsCorrectArgs(t *testing.T) {
|
|
f := &runner.Fake{}
|
|
f.On("security", nil).Return(nil, nil)
|
|
|
|
err := codesign.ImportP12(context.Background(), f, codesign.Keychain{Path: "/tmp/k", Password: "pw"}, "/tmp/c.p12", "certpw")
|
|
if err != nil {
|
|
t.Fatalf("unexpected: %v", err)
|
|
}
|
|
want := []string{
|
|
"import", "/tmp/c.p12", "-k", "/tmp/k", "-P", "certpw",
|
|
"-T", "/usr/bin/codesign",
|
|
}
|
|
if !reflect.DeepEqual(f.Calls[0].Args, want) {
|
|
t.Fatalf("args got %v want %v", f.Calls[0].Args, want)
|
|
}
|
|
|
|
// Partition list set so codesign can use the imported key non-interactively.
|
|
wantPartition := []string{
|
|
"set-key-partition-list", "-S", "apple-tool:,apple:,codesign:",
|
|
"-s", "-k", "pw", "/tmp/k",
|
|
}
|
|
if !reflect.DeepEqual(f.Calls[1].Args, wantPartition) {
|
|
t.Fatalf("partition args got %v want %v", f.Calls[1].Args, wantPartition)
|
|
}
|
|
}
|
|
|
|
func TestDeleteKeychain_BuildsCorrectArgs(t *testing.T) {
|
|
f := &runner.Fake{}
|
|
f.On("security", nil).Return(nil, nil)
|
|
|
|
err := codesign.DeleteKeychain(context.Background(), f, codesign.Keychain{Path: "/tmp/k"})
|
|
if err != nil {
|
|
t.Fatalf("unexpected: %v", err)
|
|
}
|
|
want := []string{"delete-keychain", "/tmp/k"}
|
|
if !reflect.DeepEqual(f.Calls[0].Args, want) {
|
|
t.Fatalf("args got %v want %v", f.Calls[0].Args, want)
|
|
}
|
|
}
|