bine/tests/control_cmd_conf_test.go

72 lines
2.1 KiB
Go
Raw Normal View History

package tests
2018-05-11 17:34:33 +00:00
import (
"io/ioutil"
"testing"
2020-10-15 21:38:02 +00:00
"git.openprivacy.ca/openprivacy/bine/control"
2018-05-11 17:34:33 +00:00
)
func TestGetSetAndResetConf(t *testing.T) {
2018-05-14 18:11:18 +00:00
ctx := NewTestContext(t, nil)
defer ctx.Close()
2018-05-11 17:34:33 +00:00
// Simple get conf
assertConfVals := func(val string) {
2018-05-14 18:11:18 +00:00
entries, err := ctx.Control.GetConf("LogMessageDomains", "ProtocolWarnings")
2018-05-11 17:34:33 +00:00
ctx.Require.NoError(err)
ctx.Require.Len(entries, 2)
2018-05-11 19:43:58 +00:00
ctx.Require.Contains(entries, control.NewKeyVal("LogMessageDomains", val))
ctx.Require.Contains(entries, control.NewKeyVal("ProtocolWarnings", val))
2018-05-11 17:34:33 +00:00
}
assertConfVals("0")
// Change em both to 1
one := "1"
2018-05-14 18:11:18 +00:00
err := ctx.Control.SetConf(control.KeyVals("LogMessageDomains", "1", "ProtocolWarnings", "1")...)
2018-05-11 17:34:33 +00:00
ctx.Require.NoError(err)
// Check again
assertConfVals(one)
// Reset em both
2018-05-14 18:11:18 +00:00
err = ctx.Control.ResetConf(control.KeyVals("LogMessageDomains", "", "ProtocolWarnings", "")...)
2018-05-11 17:34:33 +00:00
ctx.Require.NoError(err)
// Make sure both back to zero
assertConfVals("0")
}
func TestLoadConf(t *testing.T) {
2018-05-14 18:11:18 +00:00
ctx := NewTestContext(t, nil)
defer ctx.Close()
2018-05-11 17:34:33 +00:00
// Get entire conf text
2018-05-14 18:11:18 +00:00
vals, err := ctx.Control.GetInfo("config-text")
2018-05-11 17:34:33 +00:00
ctx.Require.NoError(err)
ctx.Require.Len(vals, 1)
ctx.Require.Equal("config-text", vals[0].Key)
2018-05-11 19:43:58 +00:00
confText := vals[0].Val
2018-05-11 17:34:33 +00:00
// Append new conf val and load
ctx.Require.NotContains(confText, "LogMessageDomains")
confText += "\r\nLogMessageDomains 1"
2018-05-14 18:11:18 +00:00
ctx.Require.NoError(ctx.Control.LoadConf(confText))
2018-05-11 17:34:33 +00:00
// Check the new val
2018-05-14 18:11:18 +00:00
vals, err = ctx.Control.GetInfo("config-text")
2018-05-11 17:34:33 +00:00
ctx.Require.NoError(err)
ctx.Require.Len(vals, 1)
ctx.Require.Equal("config-text", vals[0].Key)
2018-05-11 19:43:58 +00:00
ctx.Require.Contains(vals[0].Val, "LogMessageDomains 1")
2018-05-11 17:34:33 +00:00
}
func TestSaveConf(t *testing.T) {
2018-05-14 18:11:18 +00:00
ctx := NewTestContext(t, nil)
defer ctx.Close()
2018-05-11 17:34:33 +00:00
// Get conf filename
2018-05-14 18:11:18 +00:00
vals, err := ctx.Control.GetInfo("config-file")
2018-05-11 17:34:33 +00:00
ctx.Require.NoError(err)
ctx.Require.Len(vals, 1)
ctx.Require.Equal("config-file", vals[0].Key)
2018-05-11 19:43:58 +00:00
confFile := vals[0].Val
2018-05-11 17:34:33 +00:00
// Save it
2018-05-14 18:11:18 +00:00
ctx.Require.NoError(ctx.Control.SaveConf(false))
2018-05-11 17:34:33 +00:00
// Read and make sure, say, the DataDirectory is accurate
confText, err := ioutil.ReadFile(confFile)
ctx.Require.NoError(err)
2018-05-14 18:11:18 +00:00
ctx.Require.Contains(string(confText), "DataDirectory "+ctx.DataDir)
2018-05-11 17:34:33 +00:00
}