opaque url error & add test case

This commit is contained in:
runzexia 2017-12-13 10:49:15 +08:00
parent d8f5ad78bd
commit 390b85c67b
2 changed files with 20 additions and 2 deletions

View File

@ -71,6 +71,9 @@ func NewWithEndpoint(accessKeyID, secretAccessKey, endpoint string) (*Config, er
if err != nil {
return nil, err
}
if qcURL.Opaque != ""{
return nil , fmt.Errorf("wrong URL format")
}
if !strings.Contains(qcURL.Host, ":") {
if qcURL.Scheme == "https" {

View File

@ -93,13 +93,28 @@ func TestNew(t *testing.T) {
}
func TestNewWithEndpoint(t *testing.T) {
config, err := NewWithEndpoint("AccessKeyID", "SecretAccessKey", "http://test.qingcloud.com:444/iaas?a=1#hhh")
assert.Nil(t, err)
config, err := NewWithEndpoint("AccessKeyID", "SecretAccessKey", "test.qingcloud.com:444/iaas?a=1#hhh")
assert.NotNil(t, err)
config, err = NewWithEndpoint("AccessKeyID", "SecretAccessKey", "http:test.qingcloud.com:444/iaas?a=1#hhh")
assert.NotNil(t, err)
config, err = NewWithEndpoint("AccessKeyID", "SecretAccessKey", "https://api.qingcloud.com/iaas")
assert.Nil(t, err)
assert.Equal(t, "AccessKeyID", config.AccessKeyID)
assert.Equal(t, "SecretAccessKey", config.SecretAccessKey)
assert.Equal(t, "https", config.Protocol)
assert.Equal(t, "api.qingcloud.com", config.Host)
assert.Equal(t, 443, config.Port)
assert.Equal(t, "/iaas", config.URI)
config, err = NewWithEndpoint("AccessKeyID", "SecretAccessKey", "http://test.qingcloud.com:444/iaas")
assert.Nil(t, err)
assert.Equal(t, "AccessKeyID", config.AccessKeyID)
assert.Equal(t, "SecretAccessKey", config.SecretAccessKey)
assert.Equal(t, "http", config.Protocol)
assert.Equal(t, "test.qingcloud.com", config.Host)
assert.Equal(t, 444, config.Port)
assert.Equal(t, "/iaas", config.URI)
}