mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 02:55:51 +00:00
37 lines
806 B
Go
37 lines
806 B
Go
package securityutil
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestHardenPrivatePathProtectsDirectoryAndFile(t *testing.T) {
|
|
dir := t.TempDir()
|
|
if err := HardenPrivatePath(dir, 0o700); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
dirInfo, err := os.Lstat(dir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := ValidatePrivatePath(dir, dirInfo); err != nil {
|
|
t.Fatalf("private directory validation failed: %v", err)
|
|
}
|
|
|
|
path := filepath.Join(dir, "state.json")
|
|
if err := os.WriteFile(path, []byte("state"), 0o666); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := HardenPrivatePath(path, 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
fileInfo, err := os.Lstat(path)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := ValidatePrivatePath(path, fileInfo); err != nil {
|
|
t.Fatalf("private file validation failed: %v", err)
|
|
}
|
|
}
|