From d8f5ad78bd082e61e1335e34495fbede32fbb49d Mon Sep 17 00:00:00 2001 From: runzexia Date: Tue, 12 Dec 2017 17:49:05 +0800 Subject: [PATCH 1/2] update test case , fix newwithendpoint --- config/config.go | 3 ++- config/config_test.go | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config/config.go b/config/config.go index ef70508..b851c5e 100644 --- a/config/config.go +++ b/config/config.go @@ -87,12 +87,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 diff --git a/config/config_test.go b/config/config_test.go index b5c1289..6f07c2f 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -93,13 +93,13 @@ func TestNew(t *testing.T) { } func TestNewWithEndpoint(t *testing.T) { - config, err := NewWithEndpoint("AccessKeyID", "SecretAccessKey", "https://api.qingcloud.com/iaas") + config, err := NewWithEndpoint("AccessKeyID", "SecretAccessKey", "http://test.qingcloud.com:444/iaas?a=1#hhh") 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, "http", config.Protocol) + assert.Equal(t, "test.qingcloud.com", config.Host) + assert.Equal(t, 444, config.Port) assert.Equal(t, "/iaas", config.URI) } From 390b85c67b1d69c930bb91ecacbcc590047e41ea Mon Sep 17 00:00:00 2001 From: runzexia Date: Wed, 13 Dec 2017 10:49:15 +0800 Subject: [PATCH 2/2] opaque url error & add test case --- config/config.go | 3 +++ config/config_test.go | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index b851c5e..b7dddec 100644 --- a/config/config.go +++ b/config/config.go @@ -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" { diff --git a/config/config_test.go b/config/config_test.go index 6f07c2f..a077012 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -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") + 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) + }