Merge pull request #74 from yunify/fix-newwithendpoint

update test case , fix newwithendpoint
This commit is contained in:
runzexia 2017-12-13 11:11:43 +08:00 committed by GitHub
commit 60c8f19c35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 3 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" {
@ -87,12 +90,13 @@ func NewWithEndpoint(accessKeyID, secretAccessKey, endpoint string) (*Config, er
return nil, err
}
_, port, err := net.SplitHostPort(qcURL.Host)
host, port, err := net.SplitHostPort(qcURL.Host)
if err != nil {
return nil, err
}
config.Port, _ = strconv.Atoi(port)
config.Host = host
config.AccessKeyID = accessKeyID
config.SecretAccessKey = secretAccessKey
config.Protocol = qcURL.Scheme

View File

@ -93,13 +93,28 @@ func TestNew(t *testing.T) {
}
func TestNewWithEndpoint(t *testing.T) {
config, err := NewWithEndpoint("AccessKeyID", "SecretAccessKey", "https://api.qingcloud.com/iaas")
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)
}