|
@@ -137,7 +137,11 @@ func TestMenuConnection(t *testing.T) {
|
|
// BUG: I can't use \x1b[A because of the way extended codes work there.
|
|
// BUG: I can't use \x1b[A because of the way extended codes work there.
|
|
keys := "\x00\x50\x00\x50\r" // down, down, ENTER
|
|
keys := "\x00\x50\x00\x50\r" // down, down, ENTER
|
|
server.Write([]byte(keys))
|
|
server.Write([]byte(keys))
|
|
|
|
+ time.Sleep(time.Millisecond)
|
|
runtime.Gosched()
|
|
runtime.Gosched()
|
|
|
|
+ if d.Disconnected {
|
|
|
|
+ t.Errorf("Disconnected")
|
|
|
|
+ }
|
|
|
|
|
|
choice = m.Choose(&d)
|
|
choice = m.Choose(&d)
|
|
if choice < 0 {
|
|
if choice < 0 {
|
|
@@ -170,8 +174,16 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
|
|
|
|
keys = "\x00\x48\r" // up, ENTER
|
|
keys = "\x00\x48\r" // up, ENTER
|
|
- server.Write([]byte(keys))
|
|
|
|
|
|
+ _, err = server.Write([]byte(keys))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Errorf("server.Write: %#v", err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ time.Sleep(time.Millisecond)
|
|
runtime.Gosched()
|
|
runtime.Gosched()
|
|
|
|
+ if d.Disconnected {
|
|
|
|
+ t.Errorf("Disconnected")
|
|
|
|
+ }
|
|
|
|
|
|
m.Chosen = 1
|
|
m.Chosen = 1
|
|
choice = m.Choose(&d)
|
|
choice = m.Choose(&d)
|
|
@@ -202,11 +214,22 @@ func TestMenuConnection(t *testing.T) {
|
|
// Test HOME, END, selecting an option, 8 & 2.
|
|
// Test HOME, END, selecting an option, 8 & 2.
|
|
|
|
|
|
keys = "\x00\x4f\r" // END, ENTER
|
|
keys = "\x00\x4f\r" // END, ENTER
|
|
- server.Write([]byte(keys))
|
|
|
|
|
|
+ _, err = server.Write([]byte(keys))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Errorf("server.Write: %#v", err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ time.Sleep(time.Millisecond)
|
|
runtime.Gosched()
|
|
runtime.Gosched()
|
|
|
|
+ if d.Disconnected {
|
|
|
|
+ t.Errorf("Disconnected")
|
|
|
|
+ }
|
|
|
|
|
|
m.Chosen = 1
|
|
m.Chosen = 1
|
|
choice = m.Choose(&d)
|
|
choice = m.Choose(&d)
|
|
|
|
+ if choice < 0 {
|
|
|
|
+ t.Errorf("Error <0 from Choose: %d", choice)
|
|
|
|
+ }
|
|
option = m.GetOption(choice)
|
|
option = m.GetOption(choice)
|
|
|
|
|
|
if choice != 3 || option != 'C' {
|
|
if choice != 3 || option != 'C' {
|
|
@@ -223,11 +246,17 @@ func TestMenuConnection(t *testing.T) {
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
keys = "\x00\x47\r" // HOME, ENTER
|
|
keys = "\x00\x47\r" // HOME, ENTER
|
|
- server.Write([]byte(keys))
|
|
|
|
- runtime.Gosched()
|
|
|
|
|
|
+ _, err = server.Write([]byte(keys))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Errorf("server.Write: %#v", err)
|
|
|
|
+ }
|
|
|
|
+ time.Sleep(time.Millisecond)
|
|
|
|
|
|
m.Chosen = 2
|
|
m.Chosen = 2
|
|
choice = m.Choose(&d)
|
|
choice = m.Choose(&d)
|
|
|
|
+ if choice < 0 {
|
|
|
|
+ t.Errorf("Error <0 from Choose: %d", choice)
|
|
|
|
+ }
|
|
option = m.GetOption(choice)
|
|
option = m.GetOption(choice)
|
|
|
|
|
|
if choice != 1 || option != 'A' {
|
|
if choice != 1 || option != 'A' {
|
|
@@ -243,11 +272,18 @@ func TestMenuConnection(t *testing.T) {
|
|
server.SetReadDeadline(time.Time{})
|
|
server.SetReadDeadline(time.Time{})
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
- server.Write([]byte("B"))
|
|
|
|
- runtime.Gosched()
|
|
|
|
|
|
+ _, err = server.Write([]byte("B"))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Errorf("server.Write: %#v", err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ time.Sleep(time.Millisecond)
|
|
|
|
|
|
m.Chosen = 0
|
|
m.Chosen = 0
|
|
choice = m.Choose(&d)
|
|
choice = m.Choose(&d)
|
|
|
|
+ if choice < 0 {
|
|
|
|
+ t.Errorf("Error <0 from Choose: %d", choice)
|
|
|
|
+ }
|
|
option = m.GetOption(choice)
|
|
option = m.GetOption(choice)
|
|
|
|
|
|
if choice != 2 || option != 'B' {
|
|
if choice != 2 || option != 'B' {
|
|
@@ -266,11 +302,18 @@ func TestMenuConnection(t *testing.T) {
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
keys = "2\r" // "Down", ENTER
|
|
keys = "2\r" // "Down", ENTER
|
|
- server.Write([]byte(keys))
|
|
|
|
- runtime.Gosched()
|
|
|
|
|
|
+ _, err = server.Write([]byte(keys))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Errorf("server.Write: %#v", err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ time.Sleep(time.Millisecond)
|
|
|
|
|
|
m.Chosen = 1
|
|
m.Chosen = 1
|
|
choice = m.Choose(&d)
|
|
choice = m.Choose(&d)
|
|
|
|
+ if choice < 0 {
|
|
|
|
+ t.Errorf("Error <0 from Choose: %d", choice)
|
|
|
|
+ }
|
|
option = m.GetOption(choice)
|
|
option = m.GetOption(choice)
|
|
|
|
|
|
if choice != 3 || option != 'C' {
|
|
if choice != 3 || option != 'C' {
|
|
@@ -285,5 +328,7 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
server.SetReadDeadline(time.Time{})
|
|
server.SetReadDeadline(time.Time{})
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
-
|
|
|
|
|
|
+ server.Close()
|
|
|
|
+ client.Close()
|
|
|
|
+ close(d.writerChannel)
|
|
}
|
|
}
|