OSDN Git Service

Create ossClient.go (#574)
[bytom/vapor.git] / vendor / github.com / aliyun / aliyun-oss-go-sdk / oss / error_test.go
1 package oss
2
3 import (
4         "math"
5         "net/http"
6         "strings"
7
8         . "gopkg.in/check.v1"
9 )
10
11 type OssErrorSuite struct{}
12
13 var _ = Suite(&OssErrorSuite{})
14
15 func (s *OssErrorSuite) TestCheckCRCHasCRCInResp(c *C) {
16         headers := http.Header{
17                 "Expires":              {"-1"},
18                 "Content-Length":       {"0"},
19                 "Content-Encoding":     {"gzip"},
20                 "X-Oss-Hash-Crc64ecma": {"0"},
21         }
22
23         resp := &Response{
24                 StatusCode: 200,
25                 Headers:    headers,
26                 Body:       nil,
27                 ClientCRC:  math.MaxUint64,
28                 ServerCRC:  math.MaxUint64,
29         }
30
31         err := CheckCRC(resp, "test")
32         c.Assert(err, IsNil)
33 }
34
35 func (s *OssErrorSuite) TestCheckCRCNotHasCRCInResp(c *C) {
36         headers := http.Header{
37                 "Expires":          {"-1"},
38                 "Content-Length":   {"0"},
39                 "Content-Encoding": {"gzip"},
40         }
41
42         resp := &Response{
43                 StatusCode: 200,
44                 Headers:    headers,
45                 Body:       nil,
46                 ClientCRC:  math.MaxUint64,
47                 ServerCRC:  math.MaxUint32,
48         }
49
50         err := CheckCRC(resp, "test")
51         c.Assert(err, IsNil)
52 }
53
54 func (s *OssErrorSuite) TestCheckCRCCNegative(c *C) {
55         headers := http.Header{
56                 "Expires":              {"-1"},
57                 "Content-Length":       {"0"},
58                 "Content-Encoding":     {"gzip"},
59                 "X-Oss-Hash-Crc64ecma": {"0"},
60         }
61
62         resp := &Response{
63                 StatusCode: 200,
64                 Headers:    headers,
65                 Body:       nil,
66                 ClientCRC:  0,
67                 ServerCRC:  math.MaxUint64,
68         }
69
70         err := CheckCRC(resp, "test")
71         c.Assert(err, NotNil)
72         testLogger.Println("error:", err)
73 }
74
75 func (s *OssErrorSuite) TestCheckDownloadCRC(c *C) {
76         err := CheckDownloadCRC(0xFBF9D9603A6FA020, 0xFBF9D9603A6FA020)
77         c.Assert(err, IsNil)
78
79         err = CheckDownloadCRC(0, 0)
80         c.Assert(err, IsNil)
81
82         err = CheckDownloadCRC(0xDB6EFFF26AA94946, 0)
83         c.Assert(err, NotNil)
84         testLogger.Println("error:", err)
85 }
86
87 func (s *OssErrorSuite) TestServiceErrorEndPoint(c *C) {
88         xmlBody := `<?xml version="1.0" encoding="UTF-8"?>
89         <Error>
90           <Code>AccessDenied</Code>
91           <Message>The bucket you visit is not belong to you.</Message>
92           <RequestId>5C1B5E9BD79A6B9B6466166E</RequestId>
93           <HostId>oss-c-sdk-test-verify-b.oss-cn-shenzhen.aliyuncs.com</HostId>
94         </Error>`
95         serverError, _ := serviceErrFromXML([]byte(xmlBody), 403, "5C1B5E9BD79A6B9B6466166E")
96         errMsg := serverError.Error()
97         c.Assert(strings.Contains(errMsg, "Endpoint="), Equals, false)
98
99         xmlBodyWithEndPoint := `<?xml version="1.0" encoding="UTF-8"?>
100         <Error>
101       <Code>AccessDenied</Code>
102           <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
103           <RequestId>5C1B595ED51820B569C6A12F</RequestId>
104           <HostId>hello-hangzws.oss-cn-qingdao.aliyuncs.com</HostId>
105           <Bucket>hello-hangzws</Bucket>
106           <Endpoint>oss-cn-shenzhen.aliyuncs.com</Endpoint>
107         </Error>`
108         serverError, _ = serviceErrFromXML([]byte(xmlBodyWithEndPoint), 406, "5C1B595ED51820B569C6A12F")
109         errMsg = serverError.Error()
110         c.Assert(strings.Contains(errMsg, "Endpoint=oss-cn-shenzhen.aliyuncs.com"), Equals, true)
111 }