ConsumerTest.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. <?php
  2. require_once 'PHPUnit/Framework/TestCase.php';
  3. require_once 'Zend/Oauth/Consumer.php';
  4. class Zend_Oauth_ConsumerTest extends PHPUnit_Framework_TestCase
  5. {
  6. public function teardown()
  7. {
  8. Zend_Oauth::clearHttpClient();
  9. }
  10. public function testConstructorSetsConsumerKey()
  11. {
  12. $config = array('consumerKey'=>'1234567890');
  13. $consumer = new Zend_Oauth_Consumer($config);
  14. $this->assertEquals('1234567890', $consumer->getConsumerKey());
  15. }
  16. public function testConstructorSetsConsumerSecret()
  17. {
  18. $config = array('consumerSecret'=>'0987654321');
  19. $consumer = new Zend_Oauth_Consumer($config);
  20. $this->assertEquals('0987654321', $consumer->getConsumerSecret());
  21. }
  22. public function testSetsSignatureMethodFromOptionsArray()
  23. {
  24. $options = array(
  25. 'signatureMethod' => 'rsa-sha1'
  26. );
  27. $consumer = new Zend_Oauth_Consumer($options);
  28. $this->assertEquals('RSA-SHA1', $consumer->getSignatureMethod());
  29. }
  30. public function testSetsRequestMethodFromOptionsArray() // add back
  31. {
  32. $options = array(
  33. 'requestMethod' => Zend_Oauth::GET
  34. );
  35. $consumer = new Zend_Oauth_Consumer($options);
  36. $this->assertEquals(Zend_Oauth::GET, $consumer->getRequestMethod());
  37. }
  38. public function testSetsRequestSchemeFromOptionsArray()
  39. {
  40. $options = array(
  41. 'requestScheme' => Zend_Oauth::REQUEST_SCHEME_POSTBODY
  42. );
  43. $consumer = new Zend_Oauth_Consumer($options);
  44. $this->assertEquals(Zend_Oauth::REQUEST_SCHEME_POSTBODY, $consumer->getRequestScheme());
  45. }
  46. public function testSetsVersionFromOptionsArray()
  47. {
  48. $options = array(
  49. 'version' => '1.1'
  50. );
  51. $consumer = new Zend_Oauth_Consumer($options);
  52. $this->assertEquals('1.1', $consumer->getVersion());
  53. }
  54. public function testSetsCallbackUrlFromOptionsArray()
  55. {
  56. $options = array(
  57. 'callbackUrl' => 'http://www.example.com/local'
  58. );
  59. $consumer = new Zend_Oauth_Consumer($options);
  60. $this->assertEquals('http://www.example.com/local', $consumer->getCallbackUrl());
  61. }
  62. public function testSetsRequestTokenUrlFromOptionsArray()
  63. {
  64. $options = array(
  65. 'requestTokenUrl' => 'http://www.example.com/request'
  66. );
  67. $consumer = new Zend_Oauth_Consumer($options);
  68. $this->assertEquals('http://www.example.com/request', $consumer->getRequestTokenUrl());
  69. }
  70. public function testSetsUserAuthorizationUrlFromOptionsArray()
  71. {
  72. $options = array(
  73. 'userAuthorizationUrl' => 'http://www.example.com/authorize'
  74. );
  75. $consumer = new Zend_Oauth_Consumer($options);
  76. $this->assertEquals('http://www.example.com/authorize', $consumer->getUserAuthorizationUrl());
  77. }
  78. public function testSetsAccessTokenUrlFromOptionsArray()
  79. {
  80. $options = array(
  81. 'accessTokenUrl' => 'http://www.example.com/access'
  82. );
  83. $consumer = new Zend_Oauth_Consumer($options);
  84. $this->assertEquals('http://www.example.com/access', $consumer->getAccessTokenUrl());
  85. }
  86. public function testSetSignatureMethodThrowsExceptionForInvalidMethod()
  87. {
  88. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  89. $consumer = new Zend_Oauth_Consumer($config);
  90. try {
  91. $consumer->setSignatureMethod('buckyball');
  92. $this->fail('Invalid signature method accepted by setSignatureMethod');
  93. } catch (Zend_Oauth_Exception $e) {
  94. }
  95. }
  96. public function testSetRequestMethodThrowsExceptionForInvalidMethod()
  97. {
  98. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  99. $consumer = new Zend_Oauth_Consumer($config);
  100. try {
  101. $consumer->setRequestMethod('buckyball');
  102. $this->fail('Invalid request method accepted by setRequestMethod');
  103. } catch (Zend_Oauth_Exception $e) {
  104. }
  105. }
  106. public function testSetRequestSchemeThrowsExceptionForInvalidMethod()
  107. {
  108. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  109. $consumer = new Zend_Oauth_Consumer($config);
  110. try {
  111. $consumer->setRequestScheme('buckyball');
  112. $this->fail('Invalid request scheme accepted by setRequestScheme');
  113. } catch (Zend_Oauth_Exception $e) {
  114. }
  115. }
  116. public function testSetLocalUrlThrowsExceptionForInvalidUrl()
  117. {
  118. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  119. $consumer = new Zend_Oauth_Consumer($config);
  120. try {
  121. $consumer->setLocalUrl('buckyball');
  122. $this->fail('Invalid url accepted by setLocalUrl');
  123. } catch (Zend_Oauth_Exception $e) {
  124. }
  125. }
  126. public function testSetRequestTokenUrlThrowsExceptionForInvalidUrl()
  127. {
  128. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  129. $consumer = new Zend_Oauth_Consumer($config);
  130. try {
  131. $consumer->setRequestTokenUrl('buckyball');
  132. $this->fail('Invalid url accepted by setRequestUrl');
  133. } catch (Zend_Oauth_Exception $e) {
  134. }
  135. }
  136. public function testSetUserAuthorizationUrlThrowsExceptionForInvalidUrl()
  137. {
  138. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  139. $consumer = new Zend_Oauth_Consumer($config);
  140. try {
  141. $consumer->setUserAuthorizationUrl('buckyball');
  142. $this->fail('Invalid url accepted by setUserAuthorizationUrl');
  143. } catch (Zend_Oauth_Exception $e) {
  144. }
  145. }
  146. public function testSetAccessTokenUrlThrowsExceptionForInvalidUrl()
  147. {
  148. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  149. $consumer = new Zend_Oauth_Consumer($config);
  150. try {
  151. $consumer->setAccessTokenUrl('buckyball');
  152. $this->fail('Invalid url accepted by setAccessTokenUrl');
  153. } catch (Zend_Oauth_Exception $e) {
  154. }
  155. }
  156. public function testGetRequestTokenReturnsInstanceOfOauthTokenRequest()
  157. {
  158. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  159. $consumer = new Zend_Oauth_Consumer($config);
  160. $token = $consumer->getRequestToken(null, null, new Test_Http_RequestToken_48231);
  161. $this->assertType('Zend_Oauth_Token_Request', $token);
  162. }
  163. public function testGetRedirectUrlReturnsUserAuthorizationUrlWithParameters()
  164. {
  165. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321',
  166. 'userAuthorizationUrl'=>'http://www.example.com/authorize');
  167. $consumer = new Test_Consumer_48231($config);
  168. $params = array('foo'=>'bar');
  169. $uauth = new Zend_Oauth_Http_UserAuthorization($consumer, $params);
  170. $token = new Zend_Oauth_Token_Request;
  171. $token->setParams(array('oauth_token'=>'123456', 'oauth_token_secret'=>'654321'));
  172. $redirectUrl = $consumer->getRedirectUrl($params, $token, $uauth);
  173. $this->assertEquals(
  174. 'http://www.example.com/authorize?oauth_token=123456&oauth_callback=http%3A%2F%2Fwww.example.com%2Flocal&foo=bar',
  175. $redirectUrl
  176. );
  177. }
  178. public function testGetAccessTokenReturnsInstanceOfOauthTokenAccess()
  179. {
  180. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  181. $consumer = new Zend_Oauth_Consumer($config);
  182. $rtoken = new Zend_Oauth_Token_Request;
  183. $rtoken->setToken('token');
  184. $token = $consumer->getAccessToken(array('oauth_token'=>'token'), $rtoken, null, new Test_Http_AccessToken_48231);
  185. $this->assertType('Zend_Oauth_Token_Access', $token);
  186. }
  187. public function testGetLastRequestTokenReturnsInstanceWhenExists()
  188. {
  189. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  190. $consumer = new Test_Consumer_48231($config);
  191. $this->assertType('Zend_Oauth_Token_Request', $consumer->getLastRequestToken());
  192. }
  193. public function testGetLastAccessTokenReturnsInstanceWhenExists()
  194. {
  195. $config = array('consumerKey'=>'12345','consumerSecret'=>'54321');
  196. $consumer = new Test_Consumer_48231($config);
  197. $this->assertType('Zend_Oauth_Token_Access', $consumer->getLastAccessToken());
  198. }
  199. }
  200. class Test_Http_RequestToken_48231 extends Zend_Oauth_Http_RequestToken
  201. {
  202. public function __construct(){}
  203. public function execute(array $params = null){
  204. $return = new Zend_Oauth_Token_Request;
  205. return $return;}
  206. public function setParams(array $customServiceParameters){}
  207. }
  208. class Test_Http_AccessToken_48231 extends Zend_Oauth_Http_AccessToken
  209. {
  210. public function __construct(){}
  211. public function execute(array $params = null){
  212. $return = new Zend_Oauth_Token_Access;
  213. return $return;}
  214. public function setParams(array $customServiceParameters){}
  215. }
  216. class Test_Consumer_48231 extends Zend_Oauth_Consumer
  217. {
  218. public function __construct(array $options = array()){
  219. $this->_requestToken = new Zend_Oauth_Token_Request;
  220. $this->_accessToken = new Zend_Oauth_Token_Access;
  221. parent::__construct($options);}
  222. public function getCallbackUrl(){
  223. return 'http://www.example.com/local';}
  224. }