-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathevents_test.go
More file actions
63 lines (56 loc) · 1.34 KB
/
Copy pathevents_test.go
File metadata and controls
63 lines (56 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package mpv
import (
"reflect"
"testing"
)
func TestHook(t *testing.T) {
m := newHeadless(t)
if err := m.HookAdd(100, "on_load", 0); err != nil {
t.Fatalf("HookAdd: %v", err)
}
if err := m.Command([]string{"loadfile", "testdata/test.mpg"}); err != nil {
t.Fatalf("loadfile: %v", err)
}
gotHook := false
for i := 0; i < 200; i++ {
e := m.WaitEvent(10)
switch e.EventID {
case EventHook:
h := e.Hook()
if h.Name != "on_load" {
t.Errorf("hook name = %q, want on_load", h.Name)
}
gotHook = true
if err := m.HookContinue(h.ID); err != nil {
t.Errorf("HookContinue: %v", err)
}
case EventFileLoaded:
if !gotHook {
t.Fatal("file loaded before the hook fired")
}
return
case EventNone, EventShutdown:
t.Fatal("no hook/file-loaded event")
}
}
t.Fatal("timed out waiting for hook and file load")
}
func TestClientMessage(t *testing.T) {
m := newHeadless(t)
if err := m.CommandString("script-message hello world"); err != nil {
t.Fatalf("script-message: %v", err)
}
for i := 0; i < 100; i++ {
e := m.WaitEvent(10)
if e.EventID == EventClientMessage {
if got := e.ClientMessage(); !reflect.DeepEqual(got, []string{"hello", "world"}) {
t.Fatalf("ClientMessage = %#v, want [hello world]", got)
}
return
}
if e.EventID == EventNone {
break
}
}
t.Fatal("no client-message event")
}