2022-05-23 13:16:05 +02:00
|
|
|
package web
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2022-07-15 07:51:50 +02:00
|
|
|
"github.com/mattermost/mattermost-server/v6/shared/mlog"
|
2022-07-15 08:04:35 +02:00
|
|
|
"github.com/stretchr/testify/require"
|
2022-05-23 13:16:05 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func Test_NewServer(t *testing.T) {
|
|
|
|
tests := []struct {
|
|
|
|
name string
|
|
|
|
rootPath string
|
|
|
|
serverRoot string
|
|
|
|
ssl bool
|
|
|
|
port int
|
|
|
|
localOnly bool
|
2022-07-15 08:04:35 +02:00
|
|
|
logger *mlog.Logger
|
2022-05-23 13:16:05 +02:00
|
|
|
expectedBaseURL string
|
|
|
|
expectedServerAddr string
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
name: "should return server with given properties",
|
|
|
|
rootPath: "./test/path/to/root",
|
|
|
|
serverRoot: "https://some-fake-server.com/fake-url",
|
|
|
|
ssl: false,
|
|
|
|
port: 9999, // fake port number
|
|
|
|
localOnly: false,
|
|
|
|
logger: &mlog.Logger{},
|
|
|
|
expectedBaseURL: "/fake-url",
|
|
|
|
expectedServerAddr: ":9999",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "should return local server with given properties",
|
|
|
|
rootPath: "./test/path/to/root",
|
|
|
|
serverRoot: "https://some-fake-server.com/fake-url",
|
|
|
|
ssl: false,
|
|
|
|
port: 3000, // fake port number
|
|
|
|
localOnly: true,
|
|
|
|
logger: &mlog.Logger{},
|
|
|
|
expectedBaseURL: "/fake-url",
|
|
|
|
expectedServerAddr: "localhost:3000",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "should match Server properties when ssl true",
|
|
|
|
rootPath: "./test/path/to/root",
|
|
|
|
serverRoot: "https://some-fake-server.com/fake-url",
|
|
|
|
ssl: true,
|
|
|
|
port: 8000, // fake port number
|
|
|
|
localOnly: false,
|
|
|
|
logger: &mlog.Logger{},
|
|
|
|
expectedBaseURL: "/fake-url",
|
|
|
|
expectedServerAddr: ":8000",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "should return local server when ssl true",
|
|
|
|
rootPath: "./test/path/to/root",
|
|
|
|
serverRoot: "https://localhost:8080/fake-url",
|
|
|
|
ssl: true,
|
|
|
|
port: 9999, // fake port number
|
|
|
|
localOnly: true,
|
|
|
|
logger: &mlog.Logger{},
|
|
|
|
expectedBaseURL: "/fake-url",
|
|
|
|
expectedServerAddr: "localhost:9999",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "should return '/' as base url is not good!",
|
|
|
|
rootPath: "",
|
|
|
|
serverRoot: "https://localhost:8080/#!@$@#@",
|
|
|
|
ssl: true,
|
|
|
|
port: 9999, // fake port number
|
|
|
|
localOnly: true,
|
|
|
|
logger: &mlog.Logger{},
|
|
|
|
expectedBaseURL: "/",
|
|
|
|
expectedServerAddr: "localhost:9999",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, test := range tests {
|
|
|
|
t.Run(test.name, func(t *testing.T) {
|
|
|
|
ws := NewServer(test.rootPath, test.serverRoot, test.port, test.ssl, test.localOnly, test.logger)
|
|
|
|
|
|
|
|
require.NotNil(t, ws, "The webserver object is nil!")
|
|
|
|
|
|
|
|
require.Equal(t, test.expectedBaseURL, ws.baseURL, "baseURL does not match")
|
|
|
|
require.Equal(t, test.rootPath, ws.rootPath, "rootPath does not match")
|
|
|
|
require.Equal(t, test.port, ws.port, "rootPath does not match")
|
|
|
|
require.Equal(t, test.ssl, ws.ssl, "logger pointer does not match")
|
|
|
|
require.Equal(t, test.logger, ws.logger, "logger pointer does not match")
|
|
|
|
|
|
|
|
if test.localOnly == true {
|
|
|
|
require.Equal(t, test.expectedServerAddr, ws.Server.Addr, "localhost address not as matching!")
|
|
|
|
} else {
|
|
|
|
require.Equal(t, test.expectedServerAddr, ws.Server.Addr, "server address not matching!")
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|