...

Source file src/github.com/Azure/azure-sdk-for-go/storage/queuesasuri_test.go

Documentation: github.com/Azure/azure-sdk-for-go/storage

     1  package storage
     2  
     3  // Copyright (c) Microsoft Corporation. All rights reserved.
     4  // Licensed under the MIT License. See License.txt in the project root for license information.
     5  
     6  import (
     7  	"net/url"
     8  	"time"
     9  
    10  	chk "gopkg.in/check.v1"
    11  )
    12  
    13  type QueueSASURISuite struct{}
    14  
    15  var _ = chk.Suite(&QueueSASURISuite{})
    16  
    17  var queueOldAPIVer = "2013-08-15"
    18  var queueNewerAPIVer = "2015-04-05"
    19  
    20  func (s *QueueSASURISuite) TestGetQueueSASURI(c *chk.C) {
    21  	api, err := NewClient("foo", dummyMiniStorageKey, DefaultBaseURL, queueOldAPIVer, true)
    22  	c.Assert(err, chk.IsNil)
    23  	cli := api.GetQueueService()
    24  	q := cli.GetQueueReference("name")
    25  
    26  	expectedParts := url.URL{
    27  		Scheme: "https",
    28  		Host:   "foo.queue.core.windows.net",
    29  		Path:   "name",
    30  		RawQuery: url.Values{
    31  			"sv":  {oldAPIVer},
    32  			"sig": {"dYZ+elcEz3ZXEnTDKR5+RCrMzk0L7/ATWsemNzb36VM="},
    33  			"sp":  {"p"},
    34  			"se":  {"0001-01-01T00:00:00Z"},
    35  		}.Encode()}
    36  
    37  	options := QueueSASOptions{}
    38  	options.Process = true
    39  	options.Expiry = time.Time{}
    40  
    41  	u, err := q.GetSASURI(options)
    42  	c.Assert(err, chk.IsNil)
    43  	sasParts, err := url.Parse(u)
    44  	c.Assert(err, chk.IsNil)
    45  	c.Assert(expectedParts.String(), chk.Equals, sasParts.String())
    46  	c.Assert(expectedParts.Query(), chk.DeepEquals, sasParts.Query())
    47  }
    48  
    49  func (s *QueueSASURISuite) TestGetQueueSASURIWithSignedIPValidAPIVersionPassed(c *chk.C) {
    50  	api, err := NewClient("foo", dummyMiniStorageKey, DefaultBaseURL, queueNewerAPIVer, true)
    51  	c.Assert(err, chk.IsNil)
    52  	cli := api.GetQueueService()
    53  	q := cli.GetQueueReference("name")
    54  
    55  	expectedParts := url.URL{
    56  		Scheme: "https",
    57  		Host:   "foo.queue.core.windows.net",
    58  		Path:   "/name",
    59  		RawQuery: url.Values{
    60  			"sv":  {newerAPIVer},
    61  			"sig": {"8uvfE93HdYxQ3xvt/CUN3S7sYEl1LcuHBC0oYoGDnfw="},
    62  			"sip": {"127.0.0.1"},
    63  			"sp":  {"p"},
    64  			"se":  {"0001-01-01T00:00:00Z"},
    65  			"spr": {"https,http"},
    66  		}.Encode()}
    67  
    68  	options := QueueSASOptions{}
    69  	options.Process = true
    70  	options.Expiry = time.Time{}
    71  	options.IP = "127.0.0.1"
    72  
    73  	u, err := q.GetSASURI(options)
    74  	c.Assert(err, chk.IsNil)
    75  	sasParts, err := url.Parse(u)
    76  	c.Assert(err, chk.IsNil)
    77  	c.Assert(sasParts.Query(), chk.DeepEquals, expectedParts.Query())
    78  }
    79  
    80  // Trying to use SignedIP but using an older version of the API.
    81  // Should ignore the signedIP and just use what the older version requires.
    82  func (s *QueueSASURISuite) TestGetQueueSASURIWithSignedIPUsingOldAPIVersion(c *chk.C) {
    83  	api, err := NewClient("foo", dummyMiniStorageKey, DefaultBaseURL, oldAPIVer, true)
    84  	c.Assert(err, chk.IsNil)
    85  	cli := api.GetQueueService()
    86  	q := cli.GetQueueReference("name")
    87  
    88  	expectedParts := url.URL{
    89  		Scheme: "https",
    90  		Host:   "foo.queue.core.windows.net",
    91  		Path:   "/name",
    92  		RawQuery: url.Values{
    93  			"sv":  {oldAPIVer},
    94  			"sig": {"dYZ+elcEz3ZXEnTDKR5+RCrMzk0L7/ATWsemNzb36VM="},
    95  			"sp":  {"p"},
    96  			"se":  {"0001-01-01T00:00:00Z"},
    97  		}.Encode()}
    98  
    99  	options := QueueSASOptions{}
   100  	options.Process = true
   101  	options.Expiry = time.Time{}
   102  	options.IP = "127.0.0.1"
   103  
   104  	u, err := q.GetSASURI(options)
   105  	c.Assert(err, chk.IsNil)
   106  	sasParts, err := url.Parse(u)
   107  	c.Assert(err, chk.IsNil)
   108  	c.Assert(expectedParts.String(), chk.Equals, sasParts.String())
   109  	c.Assert(expectedParts.Query(), chk.DeepEquals, sasParts.Query())
   110  }
   111  

View as plain text