SregTest.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  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_OpenId
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. /**
  23. * Zend_OpenId
  24. */
  25. require_once 'Zend/OpenId/Extension/Sreg.php';
  26. /**
  27. * @category Zend
  28. * @package Zend_OpenId
  29. * @subpackage UnitTests
  30. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  31. * @license http://framework.zend.com/license/new-bsd New BSD License
  32. * @group Zend_OpenId
  33. */
  34. class Zend_OpenId_Extension_SregTest extends PHPUnit_Framework_TestCase
  35. {
  36. const USER = "test_user";
  37. const EMAIL = "user@test.com";
  38. const POLICY = "http://www.somewhere.com/policy.html";
  39. /**
  40. * testing getProperties
  41. *
  42. */
  43. public function testGetProperties()
  44. {
  45. $ext = new Zend_OpenId_Extension_Sreg();
  46. $this->assertSame( array(), $ext->getProperties() );
  47. $ext = new Zend_OpenId_Extension_Sreg(array('nickname'=>true,'email'=>false));
  48. $this->assertSame( array('nickname'=>true,'email'=>false), $ext->getProperties() );
  49. }
  50. /**
  51. * testing getPolicyUrl
  52. *
  53. */
  54. public function testGetPolicyUrl()
  55. {
  56. $ext = new Zend_OpenId_Extension_Sreg();
  57. $this->assertSame( null, $ext->getPolicyUrl() );
  58. $ext = new Zend_OpenId_Extension_Sreg(null, self::POLICY);
  59. $this->assertSame( self::POLICY, $ext->getPolicyUrl() );
  60. }
  61. /**
  62. * testing getVersion
  63. *
  64. */
  65. public function testGetVersion()
  66. {
  67. $ext = new Zend_OpenId_Extension_Sreg();
  68. $this->assertSame( 1.0, $ext->getVersion() );
  69. $ext = new Zend_OpenId_Extension_Sreg(null, null, 1.1);
  70. $this->assertSame( 1.1, $ext->getVersion() );
  71. }
  72. /**
  73. * testing getSregProperties
  74. *
  75. */
  76. public function testGetSregProperties()
  77. {
  78. $this->assertSame(
  79. array(
  80. "nickname",
  81. "email",
  82. "fullname",
  83. "dob",
  84. "gender",
  85. "postcode",
  86. "country",
  87. "language",
  88. "timezone"
  89. ),
  90. Zend_OpenId_Extension_Sreg::getSregProperties() );
  91. }
  92. /**
  93. * testing prepareRequest
  94. *
  95. */
  96. public function testPrepareRequest()
  97. {
  98. $ext = new Zend_OpenId_Extension_Sreg();
  99. $params = array();
  100. $this->assertTrue( $ext->prepareRequest($params) );
  101. $this->assertSame( array(), $params );
  102. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>true,"email"=>false));
  103. $params = array();
  104. $this->assertTrue( $ext->prepareRequest($params) );
  105. $this->assertSame( array('openid.sreg.required'=>"nickname", 'openid.sreg.optional'=>"email"), $params );
  106. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>true,"email"=>true), self::POLICY);
  107. $params = array();
  108. $this->assertTrue( $ext->prepareRequest($params) );
  109. $this->assertSame( array('openid.sreg.required'=>"nickname,email", 'openid.sreg.policy_url' => self::POLICY), $params );
  110. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>false,"email"=>false), self::POLICY, 1.1);
  111. $params = array();
  112. $this->assertTrue( $ext->prepareRequest($params) );
  113. $this->assertSame( array('openid.ns.sreg'=>"http://openid.net/extensions/sreg/1.1",'openid.sreg.optional'=>"nickname,email", 'openid.sreg.policy_url' => self::POLICY), $params );
  114. }
  115. /**
  116. * testing parseRequest
  117. *
  118. */
  119. public function testParseRequest()
  120. {
  121. $ext = new Zend_OpenId_Extension_Sreg();
  122. $this->assertTrue( $ext->parseRequest(array()) );
  123. $this->assertSame( array(), $ext->getProperties() );
  124. $this->assertSame( null, $ext->getPolicyUrl() );
  125. $this->assertSame( 1.0, $ext->getVersion() );
  126. $this->assertTrue( $ext->parseRequest(array('openid_sreg_required'=>"nickname", 'openid_sreg_optional'=>"email")) );
  127. $this->assertSame( array('nickname'=>true,'email'=>false), $ext->getProperties() );
  128. $this->assertSame( null, $ext->getPolicyUrl() );
  129. $this->assertSame( 1.0, $ext->getVersion() );
  130. $this->assertTrue( $ext->parseRequest(array('openid_sreg_required'=>"nickname,email", 'openid_sreg_policy_url' => self::POLICY)) );
  131. $this->assertSame( array('nickname'=>true,'email'=>true), $ext->getProperties() );
  132. $this->assertSame( self::POLICY, $ext->getPolicyUrl() );
  133. $this->assertSame( 1.0, $ext->getVersion() );
  134. $this->assertTrue( $ext->parseRequest(array('openid_ns_sreg'=>"http://openid.net/extensions/sreg/1.1", 'openid_sreg_optional'=>"nickname,email", 'openid_sreg_policy_url' => self::POLICY)) );
  135. $this->assertSame( array('nickname'=>false,'email'=>false), $ext->getProperties() );
  136. $this->assertSame( self::POLICY, $ext->getPolicyUrl() );
  137. $this->assertSame( 1.1, $ext->getVersion() );
  138. }
  139. /**
  140. * testing getTrustData
  141. *
  142. */
  143. public function testGetTrustData()
  144. {
  145. $ext = new Zend_OpenId_Extension_Sreg();
  146. $data = array();
  147. $this->assertTrue( $ext->getTrustData($data) );
  148. $this->assertSame( 1, count($data) );
  149. $this->assertSame( array(), $data["Zend_OpenId_Extension_Sreg"] );
  150. $ext = new Zend_OpenId_Extension_Sreg(array('nickname'=>true,'email'=>false));
  151. $data = array();
  152. $this->assertTrue( $ext->getTrustData($data) );
  153. $this->assertSame( 1, count($data) );
  154. $this->assertSame( array('nickname'=>true,'email'=>false), $data["Zend_OpenId_Extension_Sreg"] );
  155. }
  156. /**
  157. * testing checkTrustData
  158. *
  159. */
  160. public function testCheckTrustData()
  161. {
  162. $ext = new Zend_OpenId_Extension_Sreg();
  163. $this->assertTrue( $ext->checkTrustData(array()) );
  164. $this->assertSame( array(), $ext->getProperties() );
  165. $ext = new Zend_OpenId_Extension_Sreg();
  166. $this->assertTrue( $ext->checkTrustData(array("Zend_OpenId_Extension_Sreg"=>array())) );
  167. $this->assertSame( array(), $ext->getProperties() );
  168. $ext = new Zend_OpenId_Extension_Sreg(array());
  169. $this->assertTrue( $ext->checkTrustData(array("Zend_OpenId_Extension_Sreg"=>array("nickname"=>self::USER, "email"=>self::EMAIL))) );
  170. $this->assertSame( array(), $ext->getProperties() );
  171. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>true,"email"=>true));
  172. $this->assertTrue( $ext->checkTrustData(array("Zend_OpenId_Extension_Sreg"=>array("nickname"=>self::USER, "email"=>self::EMAIL))) );
  173. $this->assertSame( array('nickname'=>self::USER, "email"=>self::EMAIL), $ext->getProperties() );
  174. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>true,"email"=>true));
  175. $this->assertFalse( $ext->checkTrustData(array("Zend_OpenId_Extension_Sreg"=>array("nickname"=>self::USER))) );
  176. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>true,"email"=>false));
  177. $this->assertTrue( $ext->checkTrustData(array("Zend_OpenId_Extension_Sreg"=>array("nickname"=>self::USER))) );
  178. $this->assertSame( array('nickname'=>self::USER), $ext->getProperties() );
  179. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>false,"email"=>true));
  180. $this->assertTrue( $ext->checkTrustData(array("Zend_OpenId_Extension_Sreg"=>array("nickname"=>self::USER, "email"=>self::EMAIL))) );
  181. $this->assertSame( array('nickname'=>self::USER, "email"=>self::EMAIL), $ext->getProperties() );
  182. $ext = new Zend_OpenId_Extension_Sreg(array("nickname"=>false,"email"=>true));
  183. $this->assertFalse( $ext->checkTrustData(array("Zend_OpenId_Extension_SregX"=>array("nickname"=>self::USER, "email"=>self::EMAIL))) );
  184. }
  185. /**
  186. * testing prepareResponse
  187. *
  188. */
  189. public function testPrepareResponse()
  190. {
  191. $ext = new Zend_OpenId_Extension_Sreg();
  192. $params = array();
  193. $this->assertTrue( $ext->prepareResponse($params) );
  194. $this->assertSame( array(), $params );
  195. $ext = new Zend_OpenId_Extension_Sreg(array('nickname'=>self::USER, "email"=>self::EMAIL), self::POLICY);
  196. $params = array();
  197. $this->assertTrue( $ext->prepareResponse($params) );
  198. $this->assertSame( array('openid.sreg.nickname'=>self::USER, 'openid.sreg.email'=>self::EMAIL), $params );
  199. $ext = new Zend_OpenId_Extension_Sreg(array('nickname'=>self::USER, "email"=>self::EMAIL), self::POLICY, 1.1);
  200. $params = array();
  201. $this->assertTrue( $ext->prepareResponse($params) );
  202. $this->assertSame( array('openid.ns.sreg'=>"http://openid.net/extensions/sreg/1.1", 'openid.sreg.nickname'=>self::USER, 'openid.sreg.email'=>self::EMAIL), $params );
  203. }
  204. /**
  205. * testing parseResponse
  206. *
  207. */
  208. public function testParseResponse()
  209. {
  210. $ext = new Zend_OpenId_Extension_Sreg();
  211. $this->assertTrue( $ext->parseResponse(array()) );
  212. $this->assertSame( array(), $ext->getProperties() );
  213. $this->assertSame( null, $ext->getPolicyUrl() );
  214. $this->assertSame( 1.0, $ext->getVersion() );
  215. $this->assertTrue( $ext->parseResponse(array('openid_sreg_nickname'=>self::USER, 'openid_sreg_email'=>self::EMAIL)) );
  216. $this->assertSame( array('nickname'=>self::USER,'email'=>self::EMAIL), $ext->getProperties() );
  217. $this->assertSame( null, $ext->getPolicyUrl() );
  218. $this->assertSame( 1.0, $ext->getVersion() );
  219. $this->assertTrue( $ext->parseResponse(array('openid_sreg_nickname'=>self::USER, 'openid_sreg_email'=>self::EMAIL, 'openid_sreg_policy_url' => self::POLICY)) );
  220. $this->assertSame( array('nickname'=>self::USER,'email'=>self::EMAIL), $ext->getProperties() );
  221. $this->assertSame( null, $ext->getPolicyUrl() );
  222. $this->assertSame( 1.0, $ext->getVersion() );
  223. $this->assertTrue( $ext->parseResponse(array('openid_ns_sreg'=>"http://openid.net/extensions/sreg/1.1",'openid_sreg_nickname'=>self::USER, 'openid_sreg_email'=>self::EMAIL)) );
  224. $this->assertSame( array('nickname'=>self::USER,'email'=>self::EMAIL), $ext->getProperties() );
  225. $this->assertSame( null, $ext->getPolicyUrl() );
  226. $this->assertSame( 1.1, $ext->getVersion() );
  227. }
  228. }