Mono repo -> Master (#22553)
Combines the following repositories into one: https://github.com/mattermost/mattermost-server https://github.com/mattermost/mattermost-webapp https://github.com/mattermost/focalboard https://github.com/mattermost/mattermost-plugin-playbooks
Этот коммит содержится в:
93
server/channels/utils/license_test.go
Обычный файл
93
server/channels/utils/license_test.go
Обычный файл
@@ -0,0 +1,93 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestValidateLicense(t *testing.T) {
|
||||
t.Run("should fail with junk data", func(t *testing.T) {
|
||||
b1 := []byte("junk")
|
||||
ok, _ := LicenseValidator.ValidateLicense(b1)
|
||||
require.False(t, ok, "should have failed - bad license")
|
||||
|
||||
b2 := []byte("junkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunk")
|
||||
ok, _ = LicenseValidator.ValidateLicense(b2)
|
||||
require.False(t, ok, "should have failed - bad license")
|
||||
})
|
||||
|
||||
t.Run("should not panic on shorted than expected input", func(t *testing.T) {
|
||||
var licenseData bytes.Buffer
|
||||
var inputData []byte
|
||||
|
||||
for i := 0; i < 255; i++ {
|
||||
inputData = append(inputData, 'A')
|
||||
}
|
||||
inputData = append(inputData, 0x00)
|
||||
|
||||
encoder := base64.NewEncoder(base64.StdEncoding, &licenseData)
|
||||
_, err := encoder.Write(inputData)
|
||||
require.NoError(t, err)
|
||||
err = encoder.Close()
|
||||
require.NoError(t, err)
|
||||
|
||||
ok, str := LicenseValidator.ValidateLicense(licenseData.Bytes())
|
||||
require.False(t, ok)
|
||||
require.Empty(t, str)
|
||||
})
|
||||
|
||||
t.Run("should not panic with input filled of null terminators", func(t *testing.T) {
|
||||
var licenseData bytes.Buffer
|
||||
var inputData []byte
|
||||
|
||||
for i := 0; i < 256; i++ {
|
||||
inputData = append(inputData, 0x00)
|
||||
}
|
||||
|
||||
encoder := base64.NewEncoder(base64.StdEncoding, &licenseData)
|
||||
_, err := encoder.Write(inputData)
|
||||
require.NoError(t, err)
|
||||
err = encoder.Close()
|
||||
require.NoError(t, err)
|
||||
|
||||
ok, str := LicenseValidator.ValidateLicense(licenseData.Bytes())
|
||||
require.False(t, ok)
|
||||
require.Empty(t, str)
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetLicenseFileLocation(t *testing.T) {
|
||||
fileName := GetLicenseFileLocation("")
|
||||
require.NotEmpty(t, fileName, "invalid default file name")
|
||||
|
||||
fileName = GetLicenseFileLocation("mattermost.mattermost-license")
|
||||
require.Equal(t, fileName, "mattermost.mattermost-license", "invalid file name")
|
||||
}
|
||||
|
||||
func TestGetLicenseFileFromDisk(t *testing.T) {
|
||||
t.Run("missing file", func(t *testing.T) {
|
||||
fileBytes := GetLicenseFileFromDisk("thisfileshouldnotexist.mattermost-license")
|
||||
assert.Empty(t, fileBytes, "invalid bytes")
|
||||
})
|
||||
|
||||
t.Run("not a license file", func(t *testing.T) {
|
||||
f, err := os.CreateTemp("", "TestGetLicenseFileFromDisk")
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
os.WriteFile(f.Name(), []byte("not a license"), 0777)
|
||||
|
||||
fileBytes := GetLicenseFileFromDisk(f.Name())
|
||||
require.NotEmpty(t, fileBytes, "should have read the file")
|
||||
|
||||
success, _ := LicenseValidator.ValidateLicense(fileBytes)
|
||||
assert.False(t, success, "should have been an invalid file")
|
||||
})
|
||||
}
|
||||
Ссылка в новой задаче
Block a user