Files
asciinema/terminal/terminal_test.go
2015-03-05 15:57:12 +01:00

47 lines
824 B
Go

// +build !race
package terminal_test
import (
"testing"
"github.com/asciinema/asciinema/terminal"
)
type testWriter struct {
chunks []string
}
func (w *testWriter) Write(p []byte) (int, error) {
w.chunks = append(w.chunks, string(p))
return len(p), nil
}
func TestTerminal_Record(t *testing.T) {
command := `python -c "
import sys, time, os
sys.stdout.write('foo')
sys.stdout.flush()
time.sleep(0.01)
sys.stdout.write(os.environ['ASCIINEMA_REC'])
"`
stdoutCopy := &testWriter{}
err := terminal.NewTerminal().Record(command, stdoutCopy)
if err != nil {
t.Errorf("got error: %v", err)
return
}
chunk := stdoutCopy.chunks[0]
if chunk != "foo" {
t.Errorf("expected \"foo\", got \"%v\"", chunk)
}
chunk = stdoutCopy.chunks[1]
if chunk != "1" {
t.Errorf("expected \"1\", got \"%v\"", chunk)
}
}