#144 Fix plugin name and version validation
This commit is contained in:
		
							parent
							
								
									f0d058fb79
								
							
						
					
					
						commit
						e911468833
					
				|  | @ -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"
 | ||||
|  |  | |||
|  | @ -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) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue