From 4353449df602b8071a11b5f10d48d08ae1700680 Mon Sep 17 00:00:00 2001 From: "Jonathan Leibiusky @xetorthio" Date: Fri, 26 May 2017 10:20:27 -0300 Subject: [PATCH] Add test to `ClientResizeViewPort` --- pwd/broadcast_mock_test.go | 8 ++++++ pwd/client_test.go | 57 ++++++++++++++++++++++++++++++++++++++ pwd/session_test.go | 2 ++ 3 files changed, 67 insertions(+) create mode 100644 pwd/client_test.go diff --git a/pwd/broadcast_mock_test.go b/pwd/broadcast_mock_test.go index d9735fc..1d40cdc 100644 --- a/pwd/broadcast_mock_test.go +++ b/pwd/broadcast_mock_test.go @@ -3,10 +3,18 @@ package pwd import "net/http" type mockBroadcast struct { + broadcastTo func(sessionId, eventName string, args ...interface{}) + getHandler func() http.Handler } func (m *mockBroadcast) BroadcastTo(sessionId, eventName string, args ...interface{}) { + if m.broadcastTo != nil { + m.broadcastTo(sessionId, eventName, args...) + } } func (m *mockBroadcast) GetHandler() http.Handler { + if m.getHandler != nil { + return m.getHandler() + } return nil } diff --git a/pwd/client_test.go b/pwd/client_test.go new file mode 100644 index 0000000..6a7bf71 --- /dev/null +++ b/pwd/client_test.go @@ -0,0 +1,57 @@ +package pwd + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" +) + +func TestClientNew(t *testing.T) { + docker := &mockDocker{} + tasks := &mockTasks{} + broadcast := &mockBroadcast{} + storage := &mockStorage{} + + p := NewPWD(docker, tasks, broadcast, storage) + + session, err := p.SessionNew(time.Hour, "", "") + assert.Nil(t, err) + + client := p.ClientNew("foobar", session) + + assert.Equal(t, Client{Id: "foobar", session: session, viewPort: ViewPort{Cols: 0, Rows: 0}}, *client) + assert.Contains(t, session.clients, client) +} + +func TestClientResizeViewPort(t *testing.T) { + docker := &mockDocker{} + tasks := &mockTasks{} + broadcast := &mockBroadcast{} + + broadcastedSessionId := "" + broadcastedEventName := "" + broadcastedArgs := []interface{}{} + + broadcast.broadcastTo = func(sessionId, eventName string, args ...interface{}) { + broadcastedSessionId = sessionId + broadcastedEventName = eventName + broadcastedArgs = args + } + + storage := &mockStorage{} + + p := NewPWD(docker, tasks, broadcast, storage) + + session, err := p.SessionNew(time.Hour, "", "") + assert.Nil(t, err) + client := p.ClientNew("foobar", session) + + p.ClientResizeViewPort(client, 80, 24) + + assert.Equal(t, ViewPort{Cols: 80, Rows: 24}, client.viewPort) + assert.Equal(t, session.Id, broadcastedSessionId) + assert.Equal(t, "viewport resize", broadcastedEventName) + assert.Equal(t, uint(80), broadcastedArgs[0]) + assert.Equal(t, uint(24), broadcastedArgs[1]) +} diff --git a/pwd/session_test.go b/pwd/session_test.go index 514e546..aa4ccfd 100644 --- a/pwd/session_test.go +++ b/pwd/session_test.go @@ -9,6 +9,8 @@ import ( ) func TestSessionNew(t *testing.T) { + sessions = map[string]*Session{} + config.PWDContainerName = "pwd" var connectContainerName, connectNetworkName, connectIP string createdNetworkId := ""