mirror of
https://github.com/jroimartin/gocui.git
synced 2025-04-30 13:48:54 +08:00
support new integration test pattern
This commit is contained in:
parent
dfd3eb22e1
commit
3a3ab26faa
16
gui.go
16
gui.go
@ -108,6 +108,8 @@ const (
|
||||
NORMAL PlayMode = iota
|
||||
RECORDING
|
||||
REPLAYING
|
||||
// for the new form of integration tests
|
||||
REPLAYING_NEW
|
||||
)
|
||||
|
||||
type Recording struct {
|
||||
@ -116,8 +118,8 @@ type Recording struct {
|
||||
}
|
||||
|
||||
type replayedEvents struct {
|
||||
keys chan *TcellKeyEventWrapper
|
||||
resizes chan *TcellResizeEventWrapper
|
||||
Keys chan *TcellKeyEventWrapper
|
||||
Resizes chan *TcellResizeEventWrapper
|
||||
}
|
||||
|
||||
type RecordingConfig struct {
|
||||
@ -216,10 +218,10 @@ func NewGui(mode OutputMode, supportOverlaps bool, playMode PlayMode, headless b
|
||||
KeyEvents: []*TcellKeyEventWrapper{},
|
||||
ResizeEvents: []*TcellResizeEventWrapper{},
|
||||
}
|
||||
} else if playMode == REPLAYING {
|
||||
} else if playMode == REPLAYING || playMode == REPLAYING_NEW {
|
||||
g.ReplayedEvents = replayedEvents{
|
||||
keys: make(chan *TcellKeyEventWrapper),
|
||||
resizes: make(chan *TcellResizeEventWrapper),
|
||||
Keys: make(chan *TcellKeyEventWrapper),
|
||||
Resizes: make(chan *TcellResizeEventWrapper),
|
||||
}
|
||||
}
|
||||
|
||||
@ -1420,7 +1422,7 @@ func (g *Gui) replayRecording() {
|
||||
case <-ticker.C:
|
||||
timeWaited += 1
|
||||
if timeWaited >= timeToWait {
|
||||
g.ReplayedEvents.keys <- event
|
||||
g.ReplayedEvents.Keys <- event
|
||||
break middle
|
||||
}
|
||||
case <-g.stop:
|
||||
@ -1453,7 +1455,7 @@ func (g *Gui) replayRecording() {
|
||||
case <-ticker.C:
|
||||
timeWaited += 1
|
||||
if timeWaited >= timeToWait {
|
||||
g.ReplayedEvents.resizes <- event
|
||||
g.ReplayedEvents.Resizes <- event
|
||||
break middle2
|
||||
}
|
||||
case <-g.stop:
|
||||
|
@ -232,11 +232,11 @@ func (g *Gui) timeSinceStart() int64 {
|
||||
// pollEvent get tcell.Event and transform it into gocuiEvent
|
||||
func (g *Gui) pollEvent() GocuiEvent {
|
||||
var tev tcell.Event
|
||||
if g.PlayMode == REPLAYING {
|
||||
if g.PlayMode == REPLAYING || g.PlayMode == REPLAYING_NEW {
|
||||
select {
|
||||
case ev := <-g.ReplayedEvents.keys:
|
||||
case ev := <-g.ReplayedEvents.Keys:
|
||||
tev = (ev).toTcellEvent()
|
||||
case ev := <-g.ReplayedEvents.resizes:
|
||||
case ev := <-g.ReplayedEvents.Resizes:
|
||||
tev = (ev).toTcellEvent()
|
||||
}
|
||||
} else {
|
||||
|
15
view.go
15
view.go
@ -465,6 +465,14 @@ func (v *View) Cursor() (x, y int) {
|
||||
return v.cx, v.cy
|
||||
}
|
||||
|
||||
func (v *View) CursorX() int {
|
||||
return v.cx
|
||||
}
|
||||
|
||||
func (v *View) CursorY() int {
|
||||
return v.cy
|
||||
}
|
||||
|
||||
// SetOrigin sets the origin position of the view's internal buffer,
|
||||
// so the buffer starts to be printed from this point, which means that
|
||||
// it is linked with the origin point of view. It can be used to
|
||||
@ -1235,6 +1243,13 @@ func (v *View) SelectedLineIdx() int {
|
||||
return seletedLineIdx
|
||||
}
|
||||
|
||||
// expected to only be used in tests
|
||||
func (v *View) SelectedLine() string {
|
||||
line := v.lines[v.SelectedLineIdx()]
|
||||
str := lineType(line).String()
|
||||
return strings.Replace(str, "\x00", " ", -1)
|
||||
}
|
||||
|
||||
func (v *View) SelectedPoint() (int, int) {
|
||||
cx, cy := v.Cursor()
|
||||
ox, oy := v.Origin()
|
||||
|
Loading…
x
Reference in New Issue
Block a user