2
0

OfflineSecurityTokenServerTest.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  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_DeveloperGarden
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2010 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. if (!defined('PHPUnit_MAIN_METHOD')) {
  23. define('PHPUnit_MAIN_METHOD', 'Zend_Service_DeveloperGarden_SecurityTokenServerTest::main');
  24. }
  25. /**
  26. * Test helper
  27. */
  28. require_once dirname(__FILE__) . '/../../../TestHelper.php';
  29. /**
  30. * @see Zend_Service_DeveloperGarden_SecurityTokenServer
  31. */
  32. require_once 'Zend/Service/DeveloperGarden/SecurityTokenServer.php';
  33. /**
  34. * @see Zend_Service_DeveloperGarden_SecurityTokenServer_Cache
  35. */
  36. require_once 'Zend/Service/DeveloperGarden/SecurityTokenServer/Cache.php';
  37. /**
  38. * Zend_Service_DeveloperGarden test case
  39. *
  40. * @category Zend
  41. * @package Zend_Service_DeveloperGarden
  42. * @subpackage UnitTests
  43. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  44. * @license http://framework.zend.com/license/new-bsd New BSD License
  45. * @version $Id$
  46. */
  47. class Zend_Service_DeveloperGarden_OfflineSecurityTokenServerTest extends PHPUnit_Framework_TestCase
  48. {
  49. /**
  50. * @var Zend_Service_DeveloperGarden_OfflineSecurityTokenServer_Mock
  51. */
  52. protected $_service = null;
  53. public static function main()
  54. {
  55. $suite = new PHPUnit_Framework_TestSuite(__CLASS__);
  56. PHPUnit_TextUI_TestRunner::run($suite);
  57. }
  58. public function setUp()
  59. {
  60. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::removeCache();
  61. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::clearCache();
  62. if (!defined('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_LOGIN')) {
  63. define('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_LOGIN', 'Unknown');
  64. }
  65. if (!defined('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_PASSWORD')) {
  66. define('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_PASSWORD', 'Unknown');
  67. }
  68. $config = array(
  69. 'username' => TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_LOGIN,
  70. 'password' => TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_PASSWORD,
  71. );
  72. $this->service = new Zend_Service_DeveloperGarden_OfflineSecurityTokenServer_Mock($config);
  73. }
  74. public function tearDown()
  75. {
  76. // clear test case
  77. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::removeCache();
  78. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::clearCache();
  79. }
  80. public function testWsdlCache()
  81. {
  82. $this->assertNull(
  83. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  84. );
  85. $this->assertNull(
  86. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(WSDL_CACHE_NONE)
  87. );
  88. $this->assertEquals(
  89. WSDL_CACHE_NONE,
  90. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  91. );
  92. $this->assertNull(
  93. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(WSDL_CACHE_MEMORY)
  94. );
  95. $this->assertEquals(
  96. WSDL_CACHE_MEMORY,
  97. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  98. );
  99. $this->assertNull(
  100. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(WSDL_CACHE_DISK)
  101. );
  102. $this->assertEquals(
  103. WSDL_CACHE_DISK,
  104. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  105. );
  106. $this->assertNull(
  107. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(WSDL_CACHE_BOTH)
  108. );
  109. $this->assertEquals(
  110. WSDL_CACHE_BOTH,
  111. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  112. );
  113. $this->assertNull(
  114. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(WSDL_CACHE_NONE)
  115. );
  116. $this->assertEquals(
  117. WSDL_CACHE_NONE,
  118. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  119. );
  120. }
  121. public function testDisableWsdlCache()
  122. {
  123. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(WSDL_CACHE_BOTH);
  124. $this->assertEquals(
  125. WSDL_CACHE_BOTH,
  126. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache()
  127. );
  128. // clear cache property
  129. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(null);
  130. $this->assertNull(Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache());
  131. }
  132. /**
  133. * @expectedException Zend_Service_DeveloperGarden_Exception
  134. */
  135. public function testGetTokenFromCacheException()
  136. {
  137. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getTokenFromCache('NotExisting');
  138. }
  139. public function testGetTokenFromCache()
  140. {
  141. $value = Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getTokenFromCache('securityToken');
  142. $this->assertNull($value);
  143. $value = Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getTokenFromCache('getTokens');
  144. $this->assertNull($value);
  145. }
  146. public function testSetTokenToCache1stParamException()
  147. {
  148. try {
  149. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setTokenToCache(
  150. 'NotExisting',
  151. 'Zend-Framework'
  152. );
  153. $this->fail('An expected Error has not been raised.');
  154. } catch (Exception $e) {
  155. }
  156. }
  157. public function testSetTokenToCache2ndParamException()
  158. {
  159. try {
  160. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setTokenToCache(
  161. 'securityToken',
  162. 'Zend-Framework'
  163. );
  164. $this->fail('An expected Error has not been raised.');
  165. } catch (Exception $e) {
  166. }
  167. }
  168. public function testSetTokenToCacheSecurityTokenResponse()
  169. {
  170. $token = new Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse();
  171. $token->tokenFormat = 'saml20';
  172. $token->tokenEncoding = 'text/xml';
  173. $token->tokenData = '<xml><some><nice><token /></nice></some></xml>';
  174. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setTokenToCache(
  175. 'securityToken',
  176. $token
  177. );
  178. $value = Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getTokenFromCache('securityToken');
  179. $this->assertEquals($token->tokenFormat, $value->tokenFormat);
  180. $this->assertEquals($token->tokenEncoding, $value->tokenEncoding);
  181. $this->assertEquals($token->tokenData, $value->tokenData);
  182. $this->assertTrue($value instanceof Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse);
  183. }
  184. public function testSetTokenToCacheGetTokensResponse()
  185. {
  186. $token = new Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse();
  187. $token->securityToken = '<xml><security><token /></security></xml>';
  188. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setTokenToCache(
  189. 'getTokens',
  190. $token
  191. );
  192. $value = Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getTokenFromCache('getTokens');
  193. $this->assertEquals($token->securityToken, $value->securityToken);
  194. $this->assertTrue($value instanceof Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse);
  195. }
  196. /**
  197. * @expectedException Zend_Service_DeveloperGarden_Response_SecurityTokenServer_Exception
  198. */
  199. public function testGetTokenException()
  200. {
  201. $resp = new Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse();
  202. $this->assertNotNull($resp->getSecurityToken());
  203. }
  204. public function testTokenCacheGetCache()
  205. {
  206. $this->assertNull(
  207. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getCache()
  208. );
  209. }
  210. public function testTokenCacheSetCache()
  211. {
  212. require_once 'Zend/Cache.php';
  213. $cache = Zend_Cache::factory('Core', 'File', array(), array());
  214. $this->assertNull(
  215. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setCache($cache)
  216. );
  217. $this->assertType(
  218. 'Zend_Cache_Core',
  219. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getCache()
  220. );
  221. }
  222. public function testTokenCacheRemoveCache()
  223. {
  224. require_once 'Zend/Cache.php';
  225. $cache = Zend_Cache::factory('Core', 'File', array(), array());
  226. $this->assertNull(
  227. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setCache($cache)
  228. );
  229. $this->assertType(
  230. 'Zend_Cache_Core',
  231. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getCache()
  232. );
  233. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::removeCache();
  234. $this->assertNull(
  235. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getCache()
  236. );
  237. }
  238. public function testTokenCacheClearCache()
  239. {
  240. require_once 'Zend/Cache.php';
  241. $cache = Zend_Cache::factory('Core', 'File', array(), array());
  242. $this->assertNull(
  243. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setCache($cache)
  244. );
  245. $this->assertType(
  246. 'Zend_Cache_Core',
  247. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getCache()
  248. );
  249. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::clearCache();
  250. }
  251. public function testTokenCacheGetTokenFromCacheWithZendCache()
  252. {
  253. $tokens = array(
  254. 'securityToken',
  255. 'getTokens'
  256. );
  257. require_once 'Zend/Cache.php';
  258. $cache = Zend_Cache::factory('Core', 'File', array(), array());
  259. $this->assertNull(
  260. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setCache($cache)
  261. );
  262. $this->assertType(
  263. 'Zend_Cache_Core',
  264. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getCache()
  265. );
  266. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::resetTokenCache();
  267. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::clearCache();
  268. foreach ($tokens as $v) {
  269. $this->assertNull(
  270. Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getTokenFromCache($v)
  271. );
  272. }
  273. }
  274. }
  275. class Zend_Service_DeveloperGarden_OfflineSecurityTokenServer_Mock
  276. extends Zend_Service_DeveloperGarden_SecurityTokenServer
  277. {
  278. }
  279. if (PHPUnit_MAIN_METHOD == 'Zend_Service_DeveloperGarden_OfflineSecurityTokenServerTest::main') {
  280. Zend_Service_DeveloperGarden_OfflineSecurityTokenServerTest::main();
  281. }