AccessTokenTest.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. require_once 'PHPUnit/Framework/TestCase.php';
  3. require_once 'Zend/Oauth/Http/AccessToken.php';
  4. class Zend_Oauth_Http_AccessTokenTest extends PHPUnit_Framework_TestCase
  5. {
  6. protected $stubConsumer = null;
  7. public function setup()
  8. {
  9. $this->stubConsumer = new Test_Consumer_39745;
  10. $this->stubHttpUtility = new Test_Http_Utility_39745;
  11. Zend_Oauth::setHttpClient(new Test_Client_39745);
  12. }
  13. public function teardown()
  14. {
  15. Zend_Oauth::clearHttpClient();
  16. }
  17. public function testConstructorSetsConsumerInstance()
  18. {
  19. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, null, $this->stubHttpUtility);
  20. $this->assertType('Test_Consumer_39745', $request->getConsumer());
  21. }
  22. public function testConstructorSetsCustomServiceParameters()
  23. {
  24. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, array(1,2,3), $this->stubHttpUtility);
  25. $this->assertEquals(array(1,2,3), $request->getParameters());
  26. }
  27. public function testAssembleParametersCorrectlyAggregatesOauthParameters()
  28. {
  29. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, null, $this->stubHttpUtility);
  30. $expectedParams = array (
  31. 'oauth_consumer_key' => '1234567890',
  32. 'oauth_nonce' => 'e807f1fcf82d132f9bb018ca6738a19f',
  33. 'oauth_signature_method' => 'HMAC-SHA1',
  34. 'oauth_timestamp' => '12345678901',
  35. 'oauth_token' => '0987654321',
  36. 'oauth_version' => '1.0',
  37. 'oauth_signature' => '6fb42da0e32e07b61c9f0251fe627a9c'
  38. );
  39. $this->assertEquals($expectedParams, $request->assembleParams());
  40. }
  41. public function testAssembleParametersCorrectlyIgnoresCustomParameters()
  42. {
  43. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, array(
  44. 'custom_param1'=>'foo',
  45. 'custom_param2'=>'bar'
  46. ), $this->stubHttpUtility);
  47. $expectedParams = array (
  48. 'oauth_consumer_key' => '1234567890',
  49. 'oauth_nonce' => 'e807f1fcf82d132f9bb018ca6738a19f',
  50. 'oauth_signature_method' => 'HMAC-SHA1',
  51. 'oauth_timestamp' => '12345678901',
  52. 'oauth_token' => '0987654321',
  53. 'oauth_version' => '1.0',
  54. 'custom_param1'=>'foo',
  55. 'custom_param2'=>'bar',
  56. 'oauth_signature' => '6fb42da0e32e07b61c9f0251fe627a9c'
  57. );
  58. $this->assertEquals($expectedParams, $request->assembleParams());
  59. }
  60. public function testGetRequestSchemeHeaderClientSetsCorrectlyEncodedAuthorizationHeader()
  61. {
  62. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, null, $this->stubHttpUtility);
  63. $params = array (
  64. 'oauth_consumer_key' => '1234567890',
  65. 'oauth_nonce' => 'e807f1fcf82d132f9bb018ca6738a19f',
  66. 'oauth_signature_method' => 'HMAC-SHA1',
  67. 'oauth_timestamp' => '12345678901',
  68. 'oauth_token' => '0987654321',
  69. 'oauth_version' => '1.0',
  70. 'oauth_signature' => '6fb42da0e32e07b61c9f0251fe627a9c~',
  71. 'custom_param1' => 'foo',
  72. 'custom_param2' => 'bar'
  73. );
  74. $client = $request->getRequestSchemeHeaderClient($params);
  75. $this->assertEquals(
  76. 'OAuth realm="",oauth_consumer_key="1234567890",oauth_nonce="e807f1fcf82d132f9b'
  77. .'b018ca6738a19f",oauth_signature_method="HMAC-SHA1",oauth_timestamp="'
  78. .'12345678901",oauth_token="0987654321",oauth_version="1.0",oauth_sign'
  79. .'ature="6fb42da0e32e07b61c9f0251fe627a9c~"',
  80. $client->getHeader('Authorization')
  81. );
  82. }
  83. public function testGetRequestSchemePostBodyClientSetsCorrectlyEncodedRawData()
  84. {
  85. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, null, $this->stubHttpUtility);
  86. $params = array (
  87. 'oauth_consumer_key' => '1234567890',
  88. 'oauth_nonce' => 'e807f1fcf82d132f9bb018ca6738a19f',
  89. 'oauth_signature_method' => 'HMAC-SHA1',
  90. 'oauth_timestamp' => '12345678901',
  91. 'oauth_token' => '0987654321',
  92. 'oauth_version' => '1.0',
  93. 'oauth_signature' => '6fb42da0e32e07b61c9f0251fe627a9c~',
  94. 'custom_param1' => 'foo',
  95. 'custom_param2' => 'bar'
  96. );
  97. $client = $request->getRequestSchemePostBodyClient($params);
  98. $this->assertEquals(
  99. 'oauth_consumer_key=1234567890&oauth_nonce=e807f1fcf82d132f9bb018c'
  100. .'a6738a19f&oauth_signature_method=HMAC-SHA1&oauth_timestamp=12345'
  101. .'678901&oauth_token=0987654321&oauth_version=1.0&oauth_signature='
  102. .'6fb42da0e32e07b61c9f0251fe627a9c~',
  103. $client->getRawData()
  104. );
  105. }
  106. public function testGetRequestSchemeQueryStringClientSetsCorrectlyEncodedQueryString()
  107. {
  108. $request = new Zend_Oauth_Http_AccessToken($this->stubConsumer, null, $this->stubHttpUtility);
  109. $params = array (
  110. 'oauth_consumer_key' => '1234567890',
  111. 'oauth_nonce' => 'e807f1fcf82d132f9bb018ca6738a19f',
  112. 'oauth_signature_method' => 'HMAC-SHA1',
  113. 'oauth_timestamp' => '12345678901',
  114. 'oauth_token' => '0987654321',
  115. 'oauth_version' => '1.0',
  116. 'oauth_signature' => '6fb42da0e32e07b61c9f0251fe627a9c',
  117. 'custom_param1' => 'foo',
  118. 'custom_param2' => 'bar'
  119. );
  120. $client = $request->getRequestSchemeQueryStringClient($params, 'http://www.example.com');
  121. $this->assertEquals(
  122. 'oauth_consumer_key=1234567890&oauth_nonce=e807f1fcf82d132f9bb018c'
  123. .'a6738a19f&oauth_signature_method=HMAC-SHA1&oauth_timestamp=12345'
  124. .'678901&oauth_token=0987654321&oauth_version=1.0&oauth_signature='
  125. .'6fb42da0e32e07b61c9f0251fe627a9c',
  126. $client->getUri()->getQuery()
  127. );
  128. }
  129. }
  130. class Test_Consumer_39745 extends Zend_Oauth_Consumer
  131. {
  132. public function getConsumerKey(){return '1234567890';}
  133. public function getSignatureMethod(){return 'HMAC-SHA1';}
  134. public function getVersion(){return '1.0';}
  135. public function getAccessTokenUrl(){return 'http://www.example.com/access';}
  136. public function getLastRequestToken()
  137. {
  138. $return = new Test_Token_39745;
  139. return $return;
  140. }
  141. }
  142. class Test_Http_Utility_39745 extends Zend_Oauth_Http_Utility
  143. {
  144. public function __construct(){}
  145. public function generateNonce(){return md5('1234567890');}
  146. public function generateTimestamp(){return '12345678901';}
  147. public function sign(array $params, $signatureMethod, $consumerSecret,
  148. $accessTokenSecret = null, $method = null, $url = null)
  149. {
  150. return md5('0987654321');
  151. }
  152. }
  153. class Test_Client_39745 extends Zend_Http_Client
  154. {
  155. public function getRawData(){return $this->raw_post_data;}
  156. }
  157. class Test_Token_39745 extends Zend_Oauth_Token_Request
  158. {
  159. public function getToken(){return '0987654321';}
  160. }