1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
// Copyright 2013 Canonical Ltd. This software is licensed under the
// GNU Lesser General Public License version 3 (see the file COPYING).
package gwacl
import (
"encoding/base64"
. "launchpad.net/gocheck"
"time"
)
type sharedSignatureSuite struct{}
var _ = Suite(&sharedSignatureSuite{})
func (*sharedSignatureSuite) TestComposeSharedSignature(c *C) {
params := &sharedSignatureParams{
permission: "r",
signedExpiry: "2015-02-12",
path: "/path/to/file",
accountName: "name",
signedIdentifier: "identifier",
signedVersion: "2012-02-12",
signedRessource: "/the/ressource",
accountKey: base64.StdEncoding.EncodeToString([]byte("key")),
}
signature := params.composeSharedSignature()
c.Check(signature, Equals, "C/COJt8UagHJR2LBT1129bhDChtgfLGFqfZ0YQpBdF0=")
}
func (*sharedSignatureSuite) TestComposeAccessQueryValues(c *C) {
params := &sharedSignatureParams{
permission: "r",
signedExpiry: "2015-02-12",
path: "/path/to/file",
accountName: "name",
signedIdentifier: "identifier",
signedVersion: "2012-02-12",
signedRessource: "/the/ressource",
accountKey: base64.StdEncoding.EncodeToString([]byte("key")),
}
values := params.composeAccessQueryValues()
c.Check(values.Get("sv"), Equals, params.signedVersion)
c.Check(values.Get("se"), Equals, params.signedExpiry)
c.Check(values.Get("sr"), Equals, params.signedRessource)
c.Check(values.Get("sp"), Equals, params.permission)
c.Check(values.Get("sig"), Not(HasLen), 0)
}
func (*sharedSignatureSuite) TestGetReadBlobAccessValues(c *C) {
container := "container"
filename := "/path/to/file"
accountName := "name"
accountKey := base64.StdEncoding.EncodeToString([]byte("key"))
expires, err := time.Parse("Monday, 02-Jan-06 15:04:05 MST", time.RFC850)
c.Assert(err, IsNil)
values := getReadBlobAccessValues(container, filename, accountName, accountKey, expires)
c.Check(values.Get("sv"), Equals, "2012-02-12")
expiryDateString := values.Get("se")
expectedExpiryDateString := expires.UTC().Format(time.RFC3339)
c.Check(expiryDateString, Equals, expectedExpiryDateString)
c.Check(values.Get("sr"), Equals, "b")
c.Check(values.Get("sp"), Equals, "r")
c.Check(values.Get("sig"), Equals, "HK7xmxiUY/vBNkaIWoJkIcv27g/+QFjwKVgO/I3yWmI=")
}
|