#144 Fix plugin name and version validation

This commit is contained in:
Tomasz Sęk 2019-11-29 11:40:35 +01:00
parent f0d058fb79
commit e911468833
No known key found for this signature in database
GPG Key ID: DC356D23F6A644D0
2 changed files with 44 additions and 2 deletions

View File

@ -20,8 +20,8 @@ func (p Plugin) String() string {
}
var (
namePattern = regexp.MustCompile(`(?i)^[0-9a-z-_]+$`)
versionPattern = regexp.MustCompile(`^[0-9\\.-]+(\..+)?$`)
namePattern = regexp.MustCompile(`^[0-9a-zA-Z-_]+$`)
versionPattern = regexp.MustCompile(`^[0-9a-zA-Z+\\.-]+$`)
)
// New creates plugin from string, for example "name-of-plugin:0.0.1"

View File

@ -8,6 +8,48 @@ import (
"github.com/stretchr/testify/assert"
)
func TestValidatePlugin(t *testing.T) {
validPluginName := "valid"
validPluginVersion := "0.1.2"
t.Run("version 1.6+build.162", func(t *testing.T) {
got := validatePlugin(validPluginName, "1.6+build.162")
assert.NoError(t, got)
})
t.Run("version 1.8+build.201601050116", func(t *testing.T) {
got := validatePlugin(validPluginName, "1.8+build.201601050116")
assert.NoError(t, got)
})
t.Run("version 1.8-RELEASE", func(t *testing.T) {
got := validatePlugin(validPluginName, "1.8-RELEASE")
assert.NoError(t, got)
})
t.Run("version 20.810504d7462", func(t *testing.T) {
got := validatePlugin(validPluginName, "20.810504d7462")
assert.NoError(t, got)
})
t.Run("version 3.0-rc1", func(t *testing.T) {
got := validatePlugin(validPluginName, "3.0-rc1")
assert.NoError(t, got)
})
t.Run("version 3.1.20180605-140134.c2e96c4", func(t *testing.T) {
got := validatePlugin(validPluginName, "3.1.20180605-140134.c2e96c4")
assert.NoError(t, got)
})
t.Run("invalid version !", func(t *testing.T) {
got := validatePlugin(validPluginName, "0.5.1!")
assert.Error(t, got)
})
t.Run("name 01234567890-abcdefghijklmnoprstuwxz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", func(t *testing.T) {
got := validatePlugin("01234567890-abcdefghijklmnoprstuwxz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", validPluginVersion)
assert.NoError(t, got)
})
t.Run("invalid name !", func(t *testing.T) {
got := validatePlugin("!", validPluginVersion)
assert.Error(t, got)
})
}
func TestVerifyDependencies(t *testing.T) {
log.SetupLogger(false)