You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.6 KiB
97 lines
2.6 KiB
package cos
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"fmt"
|
|
"net/http"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func Test_calSHA1Digest(t *testing.T) {
|
|
want := "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
|
|
got := fmt.Sprintf("%x", calSHA1Digest([]byte("test")))
|
|
if got != want {
|
|
|
|
t.Errorf("calSHA1Digest request sha1: %+v, want %+v", got, want)
|
|
}
|
|
}
|
|
|
|
func Test_calMD5Digest(t *testing.T) {
|
|
want := "098f6bcd4621d373cade4e832627b4f6"
|
|
got := fmt.Sprintf("%x", calMD5Digest([]byte("test")))
|
|
if got != want {
|
|
|
|
t.Errorf("calMD5Digest request md5: %+v, want %+v", got, want)
|
|
}
|
|
}
|
|
|
|
func Test_cloneHeader(t *testing.T) {
|
|
ori := http.Header{}
|
|
opt := &ori
|
|
opt.Add("TestHeader1", "h1")
|
|
opt.Add("TestHeader1", "h2")
|
|
res := cloneHeader(opt)
|
|
if !reflect.DeepEqual(res, opt) {
|
|
t.Errorf("cloneHeader, returned:%+v, want:%+v", res, opt)
|
|
}
|
|
if !reflect.DeepEqual(ori, *opt) {
|
|
t.Errorf("cloneHeader, returned:%+v, want:%+v", *opt, ori)
|
|
}
|
|
res.Add("cloneHeader1", "c1")
|
|
res.Add("cloneHeader2", "c2")
|
|
if v := opt.Get("cloneHeader1"); v != "" {
|
|
t.Errorf("cloneHeader, returned:%+v, want:%+v", res, opt)
|
|
}
|
|
if v := opt.Get("cloneHeader2"); v != "" {
|
|
t.Errorf("cloneHeader, returned:%+v, want:%+v", res, opt)
|
|
}
|
|
opt = &http.Header{}
|
|
res = cloneHeader(opt)
|
|
if !reflect.DeepEqual(res, opt) {
|
|
t.Errorf("cloneHeader, returned:%+v, want:%+v", res, opt)
|
|
}
|
|
}
|
|
|
|
func Test_CloneCompleteMultipartUploadOptions(t *testing.T) {
|
|
ori := CompleteMultipartUploadOptions{
|
|
XMLName: xml.Name{Local: "CompleteMultipartUploadResult"},
|
|
Parts: []Object{
|
|
{
|
|
Key: "Key1",
|
|
ETag: "Etag1",
|
|
},
|
|
{
|
|
Key: "Key2",
|
|
ETag: "Etag2",
|
|
},
|
|
},
|
|
XOptionHeader: &http.Header{},
|
|
}
|
|
ori.XOptionHeader.Add("Test", "value")
|
|
opt := &ori
|
|
res := CloneCompleteMultipartUploadOptions(opt)
|
|
if !reflect.DeepEqual(res, opt) {
|
|
t.Errorf("CloneCompleteMultipartUploadOptions, returned:%+v,want:%+v", res, opt)
|
|
}
|
|
if !reflect.DeepEqual(ori, *opt) {
|
|
t.Errorf("CloneCompleteMultipartUploadOptions, returned:%+v,want:%+v", *opt, ori)
|
|
}
|
|
res.XOptionHeader.Add("TestClone", "value")
|
|
if v := opt.XOptionHeader.Get("TestClone"); v != "" {
|
|
t.Errorf("CloneCompleteMultipartUploadOptions, returned:%+v,want:%+v", res, opt)
|
|
}
|
|
opt = &CompleteMultipartUploadOptions{}
|
|
res = CloneCompleteMultipartUploadOptions(opt)
|
|
if !reflect.DeepEqual(res, opt) {
|
|
t.Errorf("CloneCompleteMultipartUploadOptions, returned:%+v,want:%+v", res, opt)
|
|
}
|
|
res.Parts = append(res.Parts, Object{Key: "K", ETag: "T"})
|
|
if len(opt.Parts) > 0 {
|
|
t.Errorf("CloneCompleteMultipartUploadOptions Failed")
|
|
}
|
|
if reflect.DeepEqual(res, opt) {
|
|
t.Errorf("CloneCompleteMultipartUploadOptions, returned:%+v,want:%+v", res, opt)
|
|
}
|
|
|
|
}
|