SharedKeyTest.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Service_WindowsAzure
  17. * @subpackage UnitTests
  18. * @version $Id$
  19. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  20. * @license http://framework.zend.com/license/new-bsd New BSD License
  21. */
  22. /** Zend_Service_WindowsAzure_Credentials_SharedKey */
  23. require_once 'Zend/Service/WindowsAzure/Credentials/SharedKey.php';
  24. /**
  25. * @category Zend
  26. * @package Zend_Service_WindowsAzure
  27. * @subpackage UnitTests
  28. * @version $Id$
  29. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  30. * @license http://framework.zend.com/license/new-bsd New BSD License
  31. */
  32. class Zend_Service_WindowsAzure_Credentials_SharedKeyTest extends PHPUnit_Framework_TestCase
  33. {
  34. /**
  35. * Test signing for devstore with root path
  36. */
  37. public function testSignForDevstoreWithRootPath()
  38. {
  39. $credentials = new Zend_Service_WindowsAzure_Credentials_SharedKey(Zend_Service_WindowsAzure_Credentials_SharedKey::DEVSTORE_ACCOUNT, Zend_Service_WindowsAzure_Credentials_SharedKey::DEVSTORE_KEY, true);
  40. $signedHeaders = $credentials->signRequestHeaders(
  41. 'GET',
  42. '/',
  43. '',
  44. array("x-ms-date" => "Wed, 29 Apr 2009 13:12:47 GMT"),
  45. false
  46. );
  47. $this->assertType('array', $signedHeaders);
  48. $this->assertEquals(2, count($signedHeaders));
  49. $this->assertEquals("SharedKey devstoreaccount1:9tokqwSDIqvRioVZ1k0mv5m/iseHsGRYmAMGJVu6NcU=", $signedHeaders["Authorization"]);
  50. }
  51. /**
  52. * Test signing for devstore with other path
  53. */
  54. public function testSignForDevstoreWithOtherPath()
  55. {
  56. $credentials = new Zend_Service_WindowsAzure_Credentials_SharedKey(Zend_Service_WindowsAzure_Credentials_SharedKey::DEVSTORE_ACCOUNT, Zend_Service_WindowsAzure_Credentials_SharedKey::DEVSTORE_KEY, true);
  57. $signedHeaders = $credentials->signRequestHeaders(
  58. 'GET',
  59. '/test',
  60. '',
  61. array("x-ms-date" => "Wed, 29 Apr 2009 13:12:47 GMT"),
  62. false
  63. );
  64. $this->assertType('array', $signedHeaders);
  65. $this->assertEquals(2, count($signedHeaders));
  66. $this->assertEquals("SharedKey devstoreaccount1:YHPfUXoeL/XZjEYii2pfSZi3CsOB++5sA4QT7CAvPig=", $signedHeaders["Authorization"]);
  67. }
  68. /**
  69. * Test signing for devstore with query string
  70. */
  71. public function testSignForDevstoreWithQueryString()
  72. {
  73. $credentials = new Zend_Service_WindowsAzure_Credentials_SharedKey(Zend_Service_WindowsAzure_Credentials_SharedKey::DEVSTORE_ACCOUNT, Zend_Service_WindowsAzure_Credentials_SharedKey::DEVSTORE_KEY, true);
  74. $signedHeaders = $credentials->signRequestHeaders(
  75. 'GET',
  76. '/',
  77. '?test=true',
  78. array("x-ms-date" => "Wed, 29 Apr 2009 13:12:47 GMT"),
  79. false
  80. );
  81. $this->assertType('array', $signedHeaders);
  82. $this->assertEquals(2, count($signedHeaders));
  83. $this->assertEquals("SharedKey devstoreaccount1:S1+AcI8z19N0EP0eRTEj4UUCtPbKyUcZDAt299AWudw=", $signedHeaders["Authorization"]);
  84. }
  85. /**
  86. * Test signing for production with root path
  87. */
  88. public function testSignForProductionWithRootPath()
  89. {
  90. $credentials = new Zend_Service_WindowsAzure_Credentials_SharedKey('testing', 'abcdefg');
  91. $signedHeaders = $credentials->signRequestHeaders(
  92. 'GET',
  93. '/',
  94. '',
  95. array("x-ms-date" => "Wed, 29 Apr 2009 13:12:47 GMT"),
  96. false
  97. );
  98. $this->assertType('array', $signedHeaders);
  99. $this->assertEquals(2, count($signedHeaders));
  100. $this->assertEquals("SharedKey testing:amg3/Z6Yx0KxwhRz9yn1ZCPZXYWIp5aEDCeZ1H5UIwo=", $signedHeaders["Authorization"]);
  101. }
  102. /**
  103. * Test signing for production with other path
  104. */
  105. public function testSignForProductionWithOtherPath()
  106. {
  107. $credentials = new Zend_Service_WindowsAzure_Credentials_SharedKey('testing', 'abcdefg');
  108. $signedHeaders = $credentials->signRequestHeaders(
  109. 'GET',
  110. '/test',
  111. '',
  112. array("x-ms-date" => "Wed, 29 Apr 2009 13:12:47 GMT"),
  113. false
  114. );
  115. $this->assertType('array', $signedHeaders);
  116. $this->assertEquals(2, count($signedHeaders));
  117. $this->assertEquals("SharedKey testing:ISA0m0Gy2SrxxjBO9ogtIbz0xNNyJ/GujUv5s1ibQrY=", $signedHeaders["Authorization"]);
  118. }
  119. /**
  120. * Test signing for production with query string
  121. */
  122. public function testSignForProductionWithQueryString()
  123. {
  124. $credentials = new Zend_Service_WindowsAzure_Credentials_SharedKey('testing', 'abcdefg');
  125. $signedHeaders = $credentials->signRequestHeaders(
  126. 'GET',
  127. '/',
  128. '?test=true',
  129. array("x-ms-date" => "Wed, 29 Apr 2009 13:12:47 GMT"),
  130. false
  131. );
  132. $this->assertType('array', $signedHeaders);
  133. $this->assertEquals(2, count($signedHeaders));
  134. $this->assertEquals("SharedKey testing:vlfVjEbBaRVTv35e924cR4B/Z5zCaSYjbtMz9/k3UCY=", $signedHeaders["Authorization"]);
  135. }
  136. }