Files

45 lines
938 B
Go
Raw Permalink Normal View History

2026-09-02 01:00:09 +03:00
package mic
import (
"testing"
"time"
)
func TestEncodeWAVRoundTrip(t *testing.T) {
t.Parallel()
pcm := make([]byte, 3200)
for i := range pcm {
pcm[i] = byte(i % 256)
}
wav := EncodeWAV(pcm)
if len(wav) != wavHeaderSize+len(pcm) {
t.Fatalf("wav len = %d, want %d", len(wav), wavHeaderSize+len(pcm))
}
got, err := PCMBytesFromWAV(wav)
if err != nil {
t.Fatal(err)
}
if got != len(pcm) {
t.Fatalf("pcm bytes = %d, want %d", got, len(pcm))
}
}
func TestRecordingFilename(t *testing.T) {
t.Parallel()
name := RecordingFilename(mustTime("2006-01-02T15:04:05"))
if name != "2006-01-02-150405.wav" {
t.Fatalf("name = %q", name)
}
if !ValidRecordingFilename(name) {
t.Fatal("expected valid filename")
}
if ValidRecordingFilename("../evil.wav") {
t.Fatal("expected invalid filename")
}
}
func mustTime(s string) (t time.Time) {
t, _ = time.ParseInLocation("2006-01-02T15:04:05", s, time.Local)
return t
}