diff options
author | George Goldberg <george@gberg.me> | 2018-03-13 13:36:23 +0000 |
---|---|---|
committer | George Goldberg <george@gberg.me> | 2018-03-13 13:36:23 +0000 |
commit | fadcdd271a68b38571b75d1d38ab023f940ac83a (patch) | |
tree | 7f413edd35401b54b2f4eb4a687da1ac273bcd4b /plugin/rpcplugin | |
parent | b66e4bc932ed76c1cfd2b5f4ec0cfce70cd9fbb4 (diff) | |
parent | f2d26801b9647715fb43af873354d8def753868b (diff) | |
download | chat-fadcdd271a68b38571b75d1d38ab023f940ac83a.tar.gz chat-fadcdd271a68b38571b75d1d38ab023f940ac83a.tar.bz2 chat-fadcdd271a68b38571b75d1d38ab023f940ac83a.zip |
Merge branch 'master' into advanced-permissions-phase-1
Diffstat (limited to 'plugin/rpcplugin')
-rw-r--r-- | plugin/rpcplugin/api.go | 2 | ||||
-rw-r--r-- | plugin/rpcplugin/api_test.go | 43 | ||||
-rw-r--r-- | plugin/rpcplugin/sandbox/sandbox_linux.go | 9 |
3 files changed, 49 insertions, 5 deletions
diff --git a/plugin/rpcplugin/api.go b/plugin/rpcplugin/api.go index 5b5b11a62..d87f65b55 100644 --- a/plugin/rpcplugin/api.go +++ b/plugin/rpcplugin/api.go @@ -610,4 +610,6 @@ func ConnectAPI(conn io.ReadWriteCloser, muxer *Muxer) *RemoteAPI { func init() { gob.Register([]*model.SlackAttachment{}) + gob.Register([]interface{}{}) + gob.Register(map[string]interface{}{}) } diff --git a/plugin/rpcplugin/api_test.go b/plugin/rpcplugin/api_test.go index 145ec9005..7fe7a0ff9 100644 --- a/plugin/rpcplugin/api_test.go +++ b/plugin/rpcplugin/api_test.go @@ -72,11 +72,6 @@ func TestAPI(t *testing.T) { testPost := &model.Post{ Message: "hello", - Props: map[string]interface{}{ - "attachments": []*model.SlackAttachment{ - &model.SlackAttachment{}, - }, - }, } testAPIRPC(&api, func(remote plugin.API) { @@ -244,3 +239,41 @@ func TestAPI(t *testing.T) { assert.Nil(t, err) }) } + +func TestAPI_GobRegistration(t *testing.T) { + keyValueStore := &plugintest.KeyValueStore{} + api := plugintest.API{Store: keyValueStore} + defer api.AssertExpectations(t) + + testAPIRPC(&api, func(remote plugin.API) { + api.On("CreatePost", mock.AnythingOfType("*model.Post")).Return(func(p *model.Post) (*model.Post, *model.AppError) { + p.Id = "thepostid" + return p, nil + }).Once() + _, err := remote.CreatePost(&model.Post{ + Message: "hello", + Props: map[string]interface{}{ + "attachments": []*model.SlackAttachment{ + &model.SlackAttachment{ + Actions: []*model.PostAction{ + &model.PostAction{ + Integration: &model.PostActionIntegration{ + Context: map[string]interface{}{ + "foo": "bar", + "foos": []interface{}{"bar", "baz", 1, 2}, + "foo_map": map[string]interface{}{ + "1": "bar", + "2": 2, + }, + }, + }, + }, + }, + Timestamp: 1, + }, + }, + }, + }) + require.Nil(t, err) + }) +} diff --git a/plugin/rpcplugin/sandbox/sandbox_linux.go b/plugin/rpcplugin/sandbox/sandbox_linux.go index c83572c82..4ade00cf2 100644 --- a/plugin/rpcplugin/sandbox/sandbox_linux.go +++ b/plugin/rpcplugin/sandbox/sandbox_linux.go @@ -425,6 +425,15 @@ func checkSupportInNamespace() error { return errors.Wrapf(err, "unable to enable seccomp filter") } + if f, err := os.Create(os.DevNull); err != nil { + return errors.Wrapf(err, "unable to open os.DevNull") + } else { + defer f.Close() + if _, err = f.Write([]byte("foo")); err != nil { + return errors.Wrapf(err, "unable to write to os.DevNull") + } + } + return nil } |