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 }