Files
Gokapi/internal/configuration/Configuration_test.go
Marc Ole Bulling 44260f012b Use chunked uploads instead of single upload (#68)
* Change to chunked uploads

* Renamed SHA256 attribute to SHA1

* Breaking: removed /upload endpoint

* Changed timeout to 15 minutes for reading

* Change session key only after 12 hours

* Added API calls for chunk upload, refactoring, added tests

* Add content-type based on file extension for images if empty
2022-07-25 13:21:38 +02:00

95 lines
3.1 KiB
Go

package configuration
import (
"github.com/forceu/gokapi/internal/configuration/cloudconfig"
"github.com/forceu/gokapi/internal/configuration/configupgrade"
"github.com/forceu/gokapi/internal/models"
"github.com/forceu/gokapi/internal/test"
"github.com/forceu/gokapi/internal/test/testconfiguration"
"os"
"testing"
)
func TestMain(m *testing.M) {
testconfiguration.Create(false)
exitVal := m.Run()
testconfiguration.Delete()
os.Exit(exitVal)
}
func TestLoad(t *testing.T) {
test.IsEqualBool(t, Exists(), true)
Load()
test.IsEqualString(t, Environment.ConfigDir, "test")
test.IsEqualString(t, serverSettings.Port, "127.0.0.1:53843")
test.IsEqualString(t, serverSettings.Authentication.Username, "test")
test.IsEqualString(t, serverSettings.ServerUrl, "http://127.0.0.1:53843/")
test.IsEqualString(t, serverSettings.Authentication.Password, "10340aece68aa4fb14507ae45b05506026f276cf")
test.IsEqualString(t, HashPassword("testtest", false), "10340aece68aa4fb14507ae45b05506026f276cf")
test.IsEqualBool(t, serverSettings.UseSsl, false)
test.IsEqualInt(t, serverSettings.LengthId, 20)
test.IsEqualInt(t, Get().LengthId, 20)
os.Setenv("GOKAPI_MAX_MEMORY_UPLOAD", "80")
Load()
test.IsEqualInt(t, serverSettings.MaxMemory, 80)
os.Unsetenv("GOKAPI_MAX_MEMORY_UPLOAD")
Load()
test.IsEqualInt(t, serverSettings.ConfigVersion, configupgrade.CurrentConfigVersion)
testconfiguration.Create(false)
Load()
}
func TestHashPassword(t *testing.T) {
test.IsEqualString(t, HashPassword("123", false), "423b63a68c68bd7e07b14590927c1e9a473fe035")
test.IsEqualString(t, HashPassword("", false), "")
test.IsEqualString(t, HashPassword("123", true), "7b30508aa9b233ab4b8a11b2af5816bdb58ca3e7")
}
func TestHashPasswordCustomSalt(t *testing.T) {
test.IsEmpty(t, HashPasswordCustomSalt("", "123"))
test.IsEqualString(t, HashPasswordCustomSalt("test", "salt"), "f438229716cab43569496f3a3630b3727524b81b")
defer test.ExpectPanic(t)
HashPasswordCustomSalt("1234", "")
}
func TestLoadFromSetup(t *testing.T) {
newConfig := models.Configuration{
Authentication: models.AuthenticationConfig{},
Port: "localhost:123",
ServerUrl: "serverurl",
RedirectUrl: "redirect",
ConfigVersion: configupgrade.CurrentConfigVersion,
LengthId: 10,
DataDir: "test",
MaxMemory: 10,
UseSsl: true,
MaxFileSizeMB: 199,
}
newCloudConfig := cloudconfig.CloudConfig{Aws: models.AwsConfig{
Bucket: "bucket",
Region: "region",
KeyId: "keyid",
KeySecret: "secret",
Endpoint: "",
}}
testconfiguration.WriteCloudConfigFile(true)
LoadFromSetup(newConfig, nil, false)
test.FileDoesNotExist(t, "test/cloudconfig.yml")
test.IsEqualString(t, serverSettings.RedirectUrl, "redirect")
LoadFromSetup(newConfig, &newCloudConfig, false)
test.FileExists(t, "test/cloudconfig.yml")
config, ok := cloudconfig.Load()
test.IsEqualBool(t, ok, true)
test.IsEqualString(t, config.Aws.KeyId, "keyid")
test.IsEqualString(t, serverSettings.ServerUrl, "serverurl")
}
func TestUsesHttps(t *testing.T) {
usesHttps = false
test.IsEqualBool(t, UsesHttps(), false)
usesHttps = true
test.IsEqualBool(t, UsesHttps(), true)
}