1package ansiterm
2
3import (
4	"fmt"
5	"strconv"
6)
7
8type TestAnsiEventHandler struct {
9	FunctionCalls []string
10}
11
12func CreateTestAnsiEventHandler() *TestAnsiEventHandler {
13	evtHandler := TestAnsiEventHandler{}
14	evtHandler.FunctionCalls = make([]string, 0)
15	return &evtHandler
16}
17
18func (h *TestAnsiEventHandler) recordCall(call string, params []string) {
19	s := fmt.Sprintf("%s(%v)", call, params)
20	h.FunctionCalls = append(h.FunctionCalls, s)
21}
22
23func (h *TestAnsiEventHandler) Print(b byte) error {
24	h.recordCall("Print", []string{string(b)})
25	return nil
26}
27
28func (h *TestAnsiEventHandler) Execute(b byte) error {
29	h.recordCall("Execute", []string{string(b)})
30	return nil
31}
32
33func (h *TestAnsiEventHandler) CUU(param int) error {
34	h.recordCall("CUU", []string{strconv.Itoa(param)})
35	return nil
36}
37
38func (h *TestAnsiEventHandler) CUD(param int) error {
39	h.recordCall("CUD", []string{strconv.Itoa(param)})
40	return nil
41}
42
43func (h *TestAnsiEventHandler) CUF(param int) error {
44	h.recordCall("CUF", []string{strconv.Itoa(param)})
45	return nil
46}
47
48func (h *TestAnsiEventHandler) CUB(param int) error {
49	h.recordCall("CUB", []string{strconv.Itoa(param)})
50	return nil
51}
52
53func (h *TestAnsiEventHandler) CNL(param int) error {
54	h.recordCall("CNL", []string{strconv.Itoa(param)})
55	return nil
56}
57
58func (h *TestAnsiEventHandler) CPL(param int) error {
59	h.recordCall("CPL", []string{strconv.Itoa(param)})
60	return nil
61}
62
63func (h *TestAnsiEventHandler) CHA(param int) error {
64	h.recordCall("CHA", []string{strconv.Itoa(param)})
65	return nil
66}
67
68func (h *TestAnsiEventHandler) VPA(param int) error {
69	h.recordCall("VPA", []string{strconv.Itoa(param)})
70	return nil
71}
72
73func (h *TestAnsiEventHandler) CUP(x int, y int) error {
74	xS, yS := strconv.Itoa(x), strconv.Itoa(y)
75	h.recordCall("CUP", []string{xS, yS})
76	return nil
77}
78
79func (h *TestAnsiEventHandler) HVP(x int, y int) error {
80	xS, yS := strconv.Itoa(x), strconv.Itoa(y)
81	h.recordCall("HVP", []string{xS, yS})
82	return nil
83}
84
85func (h *TestAnsiEventHandler) DECTCEM(visible bool) error {
86	h.recordCall("DECTCEM", []string{strconv.FormatBool(visible)})
87	return nil
88}
89
90func (h *TestAnsiEventHandler) DECOM(visible bool) error {
91	h.recordCall("DECOM", []string{strconv.FormatBool(visible)})
92	return nil
93}
94
95func (h *TestAnsiEventHandler) DECCOLM(use132 bool) error {
96	h.recordCall("DECOLM", []string{strconv.FormatBool(use132)})
97	return nil
98}
99
100func (h *TestAnsiEventHandler) ED(param int) error {
101	h.recordCall("ED", []string{strconv.Itoa(param)})
102	return nil
103}
104
105func (h *TestAnsiEventHandler) EL(param int) error {
106	h.recordCall("EL", []string{strconv.Itoa(param)})
107	return nil
108}
109
110func (h *TestAnsiEventHandler) IL(param int) error {
111	h.recordCall("IL", []string{strconv.Itoa(param)})
112	return nil
113}
114
115func (h *TestAnsiEventHandler) DL(param int) error {
116	h.recordCall("DL", []string{strconv.Itoa(param)})
117	return nil
118}
119
120func (h *TestAnsiEventHandler) ICH(param int) error {
121	h.recordCall("ICH", []string{strconv.Itoa(param)})
122	return nil
123}
124
125func (h *TestAnsiEventHandler) DCH(param int) error {
126	h.recordCall("DCH", []string{strconv.Itoa(param)})
127	return nil
128}
129
130func (h *TestAnsiEventHandler) SGR(params []int) error {
131	strings := []string{}
132	for _, v := range params {
133		strings = append(strings, strconv.Itoa(v))
134	}
135
136	h.recordCall("SGR", strings)
137	return nil
138}
139
140func (h *TestAnsiEventHandler) SU(param int) error {
141	h.recordCall("SU", []string{strconv.Itoa(param)})
142	return nil
143}
144
145func (h *TestAnsiEventHandler) SD(param int) error {
146	h.recordCall("SD", []string{strconv.Itoa(param)})
147	return nil
148}
149
150func (h *TestAnsiEventHandler) DA(params []string) error {
151	h.recordCall("DA", params)
152	return nil
153}
154
155func (h *TestAnsiEventHandler) DECSTBM(top int, bottom int) error {
156	topS, bottomS := strconv.Itoa(top), strconv.Itoa(bottom)
157	h.recordCall("DECSTBM", []string{topS, bottomS})
158	return nil
159}
160
161func (h *TestAnsiEventHandler) RI() error {
162	h.recordCall("RI", nil)
163	return nil
164}
165
166func (h *TestAnsiEventHandler) IND() error {
167	h.recordCall("IND", nil)
168	return nil
169}
170
171func (h *TestAnsiEventHandler) Flush() error {
172	return nil
173}
174