func TestClientMessage(t *testing.T) { app := testApp() c, err := newClient(app, &testSession{}) assert.Equal(t, nil, err) // empty message err = c.message([]byte{}) assert.Equal(t, ErrInvalidMessage, err) // malformed message err = c.message([]byte("wroooong")) assert.NotEqual(t, nil, err) var cmds []clientCommand nonConnectFirstCmd := clientCommand{ Method: "subscribe", Params: []byte("{}"), } cmds = append(cmds, nonConnectFirstCmd) cmdBytes, err := json.Marshal(cmds) assert.Equal(t, nil, err) err = c.message(cmdBytes) assert.Equal(t, ErrUnauthorized, err) }
func TestLevels(t *testing.T) { SetStdoutThreshold(LevelError) assert.Equal(t, outputThreshold, LevelError) SetLogThreshold(LevelCritical) assert.Equal(t, logThreshold, LevelCritical) assert.NotEqual(t, outputThreshold, LevelCritical) SetStdoutThreshold(LevelWarn) assert.Equal(t, outputThreshold, LevelWarn) }
func TestMemoryEngine(t *testing.T) { e := testMemoryEngine() assert.NotEqual(t, nil, e.historyHub) assert.NotEqual(t, nil, e.presenceHub) assert.NotEqual(t, e.name(), "") assert.Equal(t, nil, e.publish(ChannelID("channel"), []byte("{}"))) assert.Equal(t, nil, e.subscribe(ChannelID("channel"))) assert.Equal(t, nil, e.unsubscribe(ChannelID("channel"))) assert.Equal(t, nil, e.addPresence(ChannelID("channel"), "uid", ClientInfo{})) p, err := e.presence(ChannelID("channel")) assert.Equal(t, nil, err) assert.Equal(t, 1, len(p)) assert.Equal(t, nil, e.addHistory(ChannelID("channel"), Message{}, 1, 1)) h, err := e.history(ChannelID("channel")) assert.Equal(t, nil, err) assert.Equal(t, 1, len(h)) err = e.removePresence(ChannelID("channel"), "uid") assert.Equal(t, nil, err) }
func TestRawWsHandler(t *testing.T) { app := testApp() mux := DefaultMux(app, "", "path/to/web", "sockjs url") server := httptest.NewServer(mux) defer server.Close() url := "ws" + server.URL[4:] conn, resp, err := websocket.DefaultDialer.Dial(url+"/connection/websocket", nil) conn.Close() assert.Equal(t, nil, err) assert.NotEqual(t, nil, conn) assert.Equal(t, http.StatusSwitchingProtocols, resp.StatusCode) app.Shutdown() _, resp, err = websocket.DefaultDialer.Dial(url+"/connection/websocket", nil) assert.Equal(t, http.StatusServiceUnavailable, resp.StatusCode) }
func TestUnauthenticatedClient(t *testing.T) { app := testApp() c, err := newClient(app, &testSession{}) assert.Equal(t, nil, err) assert.NotEqual(t, "", c.uid()) // project and user not set before connect command success assert.Equal(t, ProjectKey(""), c.project()) assert.Equal(t, UserID(""), c.user()) assert.Equal(t, false, c.authenticated) assert.Equal(t, []Channel{}, c.channels()) // check that unauthenticated client can be cleaned correctly err = c.clean() assert.Equal(t, nil, err) }
func TestAdminWebsocketHandler(t *testing.T) { app := testApp() mux := DefaultMux(app, "", "path/to/web", "sockjs url") server := httptest.NewServer(mux) defer server.Close() url := "ws" + server.URL[4:] conn, resp, err := websocket.DefaultDialer.Dial(url+"/socket", nil) data := map[string]interface{}{ "method": "ping", "params": map[string]string{}, } conn.WriteJSON(data) var response interface{} conn.ReadJSON(&response) conn.Close() assert.Equal(t, nil, err) assert.NotEqual(t, nil, conn) assert.Equal(t, http.StatusSwitchingProtocols, resp.StatusCode) }
func TestSetLogFile(t *testing.T) { err := SetLogFile("/tmp/testing") assert.Equal(t, nil, err) err = SetLogFile("/i_want_it_to_not_exist_so_error_return/testing") assert.NotEqual(t, nil, err) }
func TestMediator(t *testing.T) { app := testApp() m := &testMediator{} app.SetMediator(m) assert.NotEqual(t, nil, app.mediator) }