SregTest.php 10 KB

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