Audio
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user