package control9 import ( "bitbucket.org/mischief/draw9" "fmt" "log" "os" "strings" "sync" "testing") func init() { logf, err := os.Create("/tmp/control.log") if err != nil { panic(err) } log.SetOutput(logf)} var ( disp *draw9.Display kbd *draw9.Consctl ms *draw9.Mousectl setup sync.Once) func initdraw() { d, err := draw9.InitDraw(nil, "", "controltest") if err != nil { panic(err) } disp = d kbd = draw9.InitCons("") ms = draw9.InitMouse("", d.ScreenImage) err = InitControlset(d) if err != nil { panic(err) }} func setupTest() { setup.Do(initdraw)} func TestButton(t *testing.T) { setupTest() cs, err := NewControlset(disp.ScreenImage, kbd, ms) if err != nil { t.Fatal(err) } row := cs.Row("row") e := cs.TextButton3("exit") cs.Ctl("exit text exit") cs.Ctl("row add exit") d := cs.TextButton3("doit") cs.Ctl("doit text doit") cs.Ctl("row add doit") cs.OnResize = func(cs *Controlset) { disp.Attach(draw9.Refnone) /* TODO: bug */ *cs.screen = *disp.ScreenImage cs.Ctl("row size") r := disp.ScreenImage.R cs.Ctl(fmt.Sprintf("row rect %d %d %d %d", r.Min.X, r.Min.Y, r.Max.X, r.Max.Y)) log.Printf("row %+v", row) cs.Ctl("row show") disp.Flush() } cs.Resize() evt := make(chan string, 1) e.Wire(evt) d.Wire(evt) for ev := range evt { t.Logf("evt: %s", ev) f := strings.Fields(ev) if strings.Contains(f[2], "4") { break } }}
package control9
import (
"bitbucket.org/mischief/draw9"
"fmt"
"log"
"os"
"strings"
"sync"
"testing"
)
func init() {
logf, err := os.Create("/tmp/control.log")
if err != nil {
panic(err)
}
log.SetOutput(logf)
}
var (
disp *draw9.Display
kbd *draw9.Consctl
ms *draw9.Mousectl
setup sync.Once
)
func initdraw() {
d, err := draw9.InitDraw(nil, "", "controltest")
if err != nil {
panic(err)
}
disp = d
kbd = draw9.InitCons("")
ms = draw9.InitMouse("", d.ScreenImage)
err = InitControlset(d)
if err != nil {
panic(err)
}
}
func setupTest() {
setup.Do(initdraw)
}
func TestButton(t *testing.T) {
setupTest()
cs, err := NewControlset(disp.ScreenImage, kbd, ms)
if err != nil {
t.Fatal(err)
}
row := cs.Row("row")
e := cs.TextButton3("exit")
cs.Ctl("exit text exit")
cs.Ctl("row add exit")
d := cs.TextButton3("doit")
cs.Ctl("doit text doit")
cs.Ctl("row add doit")
cs.OnResize = func(cs *Controlset) {
disp.Attach(draw9.Refnone)
/* TODO: bug */
*cs.screen = *disp.ScreenImage
cs.Ctl("row size")
r := disp.ScreenImage.R
cs.Ctl(fmt.Sprintf("row rect %d %d %d %d", r.Min.X, r.Min.Y, r.Max.X, r.Max.Y))
log.Printf("row %+v", row)
cs.Ctl("row show")
disp.Flush()
}
cs.Resize()
evt := make(chan string, 1)
e.Wire(evt)
d.Wire(evt)
for ev := range evt {
t.Logf("evt: %s", ev)
f := strings.Fields(ev)
if strings.Contains(f[2], "4") {
break
}
}
}