Mercurial > hg > Members > shoshi > webvirt
comparison cake/tests/cases/libs/security.test.php @ 0:261e66bd5a0c
hg init
author | Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 24 Jul 2011 21:08:31 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:261e66bd5a0c |
---|---|
1 <?php | |
2 /** | |
3 * SecurityTest file | |
4 * | |
5 * PHP versions 4 and 5 | |
6 * | |
7 * CakePHP(tm) Tests <http://book.cakephp.org/view/1196/Testing> | |
8 * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) | |
9 * | |
10 * Licensed under The Open Group Test Suite License | |
11 * Redistributions of files must retain the above copyright notice. | |
12 * | |
13 * @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) | |
14 * @link http://book.cakephp.org/view/1196/Testing CakePHP(tm) Tests | |
15 * @package cake | |
16 * @subpackage cake.tests.cases.libs | |
17 * @since CakePHP(tm) v 1.2.0.5432 | |
18 * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License | |
19 */ | |
20 App::import('Core', 'Security'); | |
21 | |
22 /** | |
23 * SecurityTest class | |
24 * | |
25 * @package cake | |
26 * @subpackage cake.tests.cases.libs | |
27 */ | |
28 class SecurityTest extends CakeTestCase { | |
29 | |
30 /** | |
31 * sut property | |
32 * | |
33 * @var mixed null | |
34 * @access public | |
35 */ | |
36 var $sut = null; | |
37 | |
38 /** | |
39 * setUp method | |
40 * | |
41 * @access public | |
42 * @return void | |
43 */ | |
44 function setUp() { | |
45 $this->sut =& Security::getInstance(); | |
46 } | |
47 | |
48 /** | |
49 * testInactiveMins method | |
50 * | |
51 * @access public | |
52 * @return void | |
53 */ | |
54 function testInactiveMins() { | |
55 Configure::write('Security.level', 'high'); | |
56 $this->assertEqual(10, Security::inactiveMins()); | |
57 | |
58 Configure::write('Security.level', 'medium'); | |
59 $this->assertEqual(100, Security::inactiveMins()); | |
60 | |
61 Configure::write('Security.level', 'low'); | |
62 $this->assertEqual(300, Security::inactiveMins()); | |
63 } | |
64 | |
65 /** | |
66 * testGenerateAuthkey method | |
67 * | |
68 * @access public | |
69 * @return void | |
70 */ | |
71 function testGenerateAuthkey() { | |
72 $this->assertEqual(strlen(Security::generateAuthKey()), 40); | |
73 } | |
74 | |
75 /** | |
76 * testValidateAuthKey method | |
77 * | |
78 * @access public | |
79 * @return void | |
80 */ | |
81 function testValidateAuthKey() { | |
82 $authKey = Security::generateAuthKey(); | |
83 $this->assertTrue(Security::validateAuthKey($authKey)); | |
84 } | |
85 | |
86 /** | |
87 * testHash method | |
88 * | |
89 * @access public | |
90 * @return void | |
91 */ | |
92 function testHash() { | |
93 $Security =& Security::getInstance(); | |
94 $_hashType = $Security->hashType; | |
95 | |
96 $key = 'someKey'; | |
97 $hash = 'someHash'; | |
98 | |
99 $this->assertIdentical(strlen(Security::hash($key, null, false)), 40); | |
100 $this->assertIdentical(strlen(Security::hash($key, 'sha1', false)), 40); | |
101 $this->assertIdentical(strlen(Security::hash($key, null, true)), 40); | |
102 $this->assertIdentical(strlen(Security::hash($key, 'sha1', true)), 40); | |
103 | |
104 $result = Security::hash($key, null, $hash); | |
105 $this->assertIdentical($result, 'e38fcb877dccb6a94729a81523851c931a46efb1'); | |
106 | |
107 $result = Security::hash($key, 'sha1', $hash); | |
108 $this->assertIdentical($result, 'e38fcb877dccb6a94729a81523851c931a46efb1'); | |
109 | |
110 $hashType = 'sha1'; | |
111 Security::setHash($hashType); | |
112 $this->assertIdentical($this->sut->hashType, $hashType); | |
113 $this->assertIdentical(strlen(Security::hash($key, null, true)), 40); | |
114 $this->assertIdentical(strlen(Security::hash($key, null, false)), 40); | |
115 | |
116 $this->assertIdentical(strlen(Security::hash($key, 'md5', false)), 32); | |
117 $this->assertIdentical(strlen(Security::hash($key, 'md5', true)), 32); | |
118 | |
119 $hashType = 'md5'; | |
120 Security::setHash($hashType); | |
121 $this->assertIdentical($this->sut->hashType, $hashType); | |
122 $this->assertIdentical(strlen(Security::hash($key, null, false)), 32); | |
123 $this->assertIdentical(strlen(Security::hash($key, null, true)), 32); | |
124 | |
125 if (!function_exists('hash') && !function_exists('mhash')) { | |
126 $this->assertIdentical(strlen(Security::hash($key, 'sha256', false)), 32); | |
127 $this->assertIdentical(strlen(Security::hash($key, 'sha256', true)), 32); | |
128 } else { | |
129 $this->assertIdentical(strlen(Security::hash($key, 'sha256', false)), 64); | |
130 $this->assertIdentical(strlen(Security::hash($key, 'sha256', true)), 64); | |
131 } | |
132 | |
133 Security::setHash($_hashType); | |
134 } | |
135 | |
136 /** | |
137 * testCipher method | |
138 * | |
139 * @access public | |
140 * @return void | |
141 */ | |
142 function testCipher() { | |
143 $length = 10; | |
144 $txt = ''; | |
145 for ($i = 0; $i < $length; $i++) { | |
146 $txt .= mt_rand(0, 255); | |
147 } | |
148 $key = 'my_key'; | |
149 $result = Security::cipher($txt, $key); | |
150 $this->assertEqual(Security::cipher($result, $key), $txt); | |
151 | |
152 $txt = ''; | |
153 $key = 'my_key'; | |
154 $result = Security::cipher($txt, $key); | |
155 $this->assertEqual(Security::cipher($result, $key), $txt); | |
156 | |
157 $txt = 'some_text'; | |
158 $key = ''; | |
159 $result = Security::cipher($txt, $key); | |
160 $this->assertError(); | |
161 $this->assertIdentical($result, ''); | |
162 | |
163 $txt = 123456; | |
164 $key = 'my_key'; | |
165 $result = Security::cipher($txt, $key); | |
166 $this->assertEqual(Security::cipher($result, $key), $txt); | |
167 | |
168 $txt = '123456'; | |
169 $key = 'my_key'; | |
170 $result = Security::cipher($txt, $key); | |
171 $this->assertEqual(Security::cipher($result, $key), $txt); | |
172 } | |
173 } |