46 lines
670 B
Go
46 lines
670 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestKeyboardNext(t *testing.T) {
|
|
defer fakeInput(t)()
|
|
k, err := NewKeyboard()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
go k.Listen()
|
|
for i := 0; i < 5; i++ {
|
|
t.Log(k.Next())
|
|
}
|
|
k.Close()
|
|
}
|
|
|
|
func TestKeyboardEvents(t *testing.T) {
|
|
defer fakeInput(t)()
|
|
k, err := NewKeyboard()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
go k.Listen()
|
|
i := 0
|
|
for b := range k.Events {
|
|
i += 1
|
|
t.Log(b)
|
|
if i == 5 {
|
|
k.Close()
|
|
}
|
|
}
|
|
}
|
|
|
|
func fakeInput(t *testing.T) func() {
|
|
if !strings.Contains(fmt.Sprint(os.Args), "-test.v=true") {
|
|
t.Fatal("-v not passed, requries manual testing for input")
|
|
}
|
|
return func() {}
|
|
}
|