Mercurial > hg > Members > shoshi > webvirt
comparison cake/tests/cases/libs/view/helpers/number.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 * NumberHelperTest 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.view.helpers | |
17 * @since CakePHP(tm) v 1.2.0.4206 | |
18 * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License | |
19 */ | |
20 App::import('Helper', 'Number'); | |
21 | |
22 /** | |
23 * NumberHelperTest class | |
24 * | |
25 * @package cake | |
26 * @subpackage cake.tests.cases.libs.view.helpers | |
27 */ | |
28 class NumberHelperTest extends CakeTestCase { | |
29 | |
30 /** | |
31 * helper property | |
32 * | |
33 * @var mixed null | |
34 * @access public | |
35 */ | |
36 var $helper = null; | |
37 | |
38 /** | |
39 * setUp method | |
40 * | |
41 * @access public | |
42 * @return void | |
43 */ | |
44 function startTest() { | |
45 $this->Number =& new NumberHelper(); | |
46 } | |
47 | |
48 /** | |
49 * tearDown method | |
50 * | |
51 * @access public | |
52 * @return void | |
53 */ | |
54 function endTest() { | |
55 unset($this->Number); | |
56 } | |
57 | |
58 /** | |
59 * testFormatAndCurrency method | |
60 * | |
61 * @access public | |
62 * @return void | |
63 */ | |
64 function testFormat() { | |
65 $value = '100100100'; | |
66 | |
67 $result = $this->Number->format($value, '#'); | |
68 $expected = '#100,100,100'; | |
69 $this->assertEqual($expected, $result); | |
70 | |
71 $result = $this->Number->format($value, 3); | |
72 $expected = '100,100,100.000'; | |
73 $this->assertEqual($expected, $result); | |
74 | |
75 $result = $this->Number->format($value); | |
76 $expected = '100,100,100'; | |
77 $this->assertEqual($expected, $result); | |
78 | |
79 $result = $this->Number->format($value, '-'); | |
80 $expected = '100-100-100'; | |
81 $this->assertEqual($expected, $result); | |
82 } | |
83 | |
84 /** | |
85 * Test currency method. | |
86 * | |
87 * @access public | |
88 * @return void | |
89 */ | |
90 function testCurrency() { | |
91 $value = '100100100'; | |
92 | |
93 $result = $this->Number->currency($value); | |
94 $expected = '$100,100,100.00'; | |
95 $this->assertEqual($expected, $result); | |
96 | |
97 $result = $this->Number->currency($value, '#'); | |
98 $expected = '#100,100,100.00'; | |
99 $this->assertEqual($expected, $result); | |
100 | |
101 $result = $this->Number->currency($value, false); | |
102 $expected = '100,100,100.00'; | |
103 $this->assertEqual($expected, $result); | |
104 | |
105 $result = $this->Number->currency($value, 'USD'); | |
106 $expected = '$100,100,100.00'; | |
107 $this->assertEqual($expected, $result); | |
108 | |
109 $result = $this->Number->currency($value, 'EUR'); | |
110 $expected = '€100.100.100,00'; | |
111 $this->assertEqual($expected, $result); | |
112 | |
113 $result = $this->Number->currency($value, 'GBP'); | |
114 $expected = '£100,100,100.00'; | |
115 $this->assertEqual($expected, $result); | |
116 | |
117 $result = $this->Number->currency($value, '', array('thousands' =>' ', 'after' => '€', 'decimals' => ',', 'zero' => 'Gratuit')); | |
118 $expected = '100 100 100,00€'; | |
119 $this->assertEqual($expected, $result); | |
120 | |
121 $result = $this->Number->currency(1000.45, NULL, array('after'=>'øre','before'=>'Kr. ','decimals'=>',','thousands'=>'.')); | |
122 $expected = 'Kr. 1.000,45'; | |
123 $this->assertEqual($expected,$result); | |
124 | |
125 $result = $this->Number->currency(0.5, 'USD'); | |
126 $expected = '50c'; | |
127 $this->assertEqual($expected,$result); | |
128 | |
129 $result = $this->Number->currency(0.5, NULL, array('after'=>'øre')); | |
130 $expected = '50øre'; | |
131 $this->assertEqual($expected,$result); | |
132 } | |
133 | |
134 /** | |
135 * Test adding currency format options to the number helper | |
136 * | |
137 * @access public | |
138 * @return void | |
139 */ | |
140 function testCurrencyAddFormat() { | |
141 $this->Number->addFormat('NOK', array('before' => 'Kr. ')); | |
142 $result = $this->Number->currency(1000, 'NOK'); | |
143 $expected = 'Kr. 1,000.00'; | |
144 $this->assertEqual($expected,$result); | |
145 | |
146 $this->Number->addFormat('Other', array('before' => '$$ ', 'after' => 'c!')); | |
147 $result = $this->Number->currency(0.22, 'Other'); | |
148 $expected = '22c!'; | |
149 $this->assertEqual($expected,$result); | |
150 | |
151 $result = $this->Number->currency(-10, 'Other'); | |
152 $expected = '($$ 10.00)'; | |
153 $this->assertEqual($expected,$result); | |
154 } | |
155 | |
156 /** | |
157 * testCurrencyPositive method | |
158 * | |
159 * @access public | |
160 * @return void | |
161 */ | |
162 function testCurrencyPositive() { | |
163 $value = '100100100'; | |
164 | |
165 $result = $this->Number->currency($value); | |
166 $expected = '$100,100,100.00'; | |
167 $this->assertEqual($expected, $result); | |
168 | |
169 $result = $this->Number->currency($value, 'USD', array('before'=> '#')); | |
170 $expected = '#100,100,100.00'; | |
171 $this->assertEqual($expected, $result); | |
172 | |
173 $result = $this->Number->currency($value, false); | |
174 $expected = '100,100,100.00'; | |
175 $this->assertEqual($expected, $result); | |
176 | |
177 $result = $this->Number->currency($value, 'USD'); | |
178 $expected = '$100,100,100.00'; | |
179 $this->assertEqual($expected, $result); | |
180 | |
181 $result = $this->Number->currency($value, 'EUR'); | |
182 $expected = '€100.100.100,00'; | |
183 $this->assertEqual($expected, $result); | |
184 | |
185 $result = $this->Number->currency($value, 'GBP'); | |
186 $expected = '£100,100,100.00'; | |
187 $this->assertEqual($expected, $result); | |
188 } | |
189 | |
190 /** | |
191 * testCurrencyNegative method | |
192 * | |
193 * @access public | |
194 * @return void | |
195 */ | |
196 function testCurrencyNegative() { | |
197 $value = '-100100100'; | |
198 | |
199 $result = $this->Number->currency($value); | |
200 $expected = '($100,100,100.00)'; | |
201 $this->assertEqual($expected, $result); | |
202 | |
203 $result = $this->Number->currency($value, 'EUR'); | |
204 $expected = '(€100.100.100,00)'; | |
205 $this->assertEqual($expected, $result); | |
206 | |
207 $result = $this->Number->currency($value, 'GBP'); | |
208 $expected = '(£100,100,100.00)'; | |
209 $this->assertEqual($expected, $result); | |
210 | |
211 $result = $this->Number->currency($value, 'USD', array('negative'=>'-')); | |
212 $expected = '-$100,100,100.00'; | |
213 $this->assertEqual($expected, $result); | |
214 | |
215 $result = $this->Number->currency($value, 'EUR', array('negative'=>'-')); | |
216 $expected = '-€100.100.100,00'; | |
217 $this->assertEqual($expected, $result); | |
218 | |
219 $result = $this->Number->currency($value, 'GBP', array('negative'=>'-')); | |
220 $expected = '-£100,100,100.00'; | |
221 $this->assertEqual($expected, $result); | |
222 | |
223 } | |
224 | |
225 /** | |
226 * testCurrencyCentsPositive method | |
227 * | |
228 * @access public | |
229 * @return void | |
230 */ | |
231 function testCurrencyCentsPositive() { | |
232 $value = '0.99'; | |
233 | |
234 $result = $this->Number->currency($value, 'USD'); | |
235 $expected = '99c'; | |
236 $this->assertEqual($expected, $result); | |
237 | |
238 $result = $this->Number->currency($value, 'EUR'); | |
239 $expected = '€0,99'; | |
240 $this->assertEqual($expected, $result); | |
241 | |
242 $result = $this->Number->currency($value, 'GBP'); | |
243 $expected = '99p'; | |
244 $this->assertEqual($expected, $result); | |
245 } | |
246 | |
247 /** | |
248 * testCurrencyCentsNegative method | |
249 * | |
250 * @access public | |
251 * @return void | |
252 */ | |
253 function testCurrencyCentsNegative() { | |
254 $value = '-0.99'; | |
255 | |
256 $result = $this->Number->currency($value, 'USD'); | |
257 $expected = '(99c)'; | |
258 $this->assertEqual($expected, $result); | |
259 | |
260 $result = $this->Number->currency($value, 'EUR'); | |
261 $expected = '(€0,99)'; | |
262 $this->assertEqual($expected, $result); | |
263 | |
264 $result = $this->Number->currency($value, 'GBP'); | |
265 $expected = '(99p)'; | |
266 $this->assertEqual($expected, $result); | |
267 | |
268 $result = $this->Number->currency($value, 'USD', array('negative'=>'-')); | |
269 $expected = '-99c'; | |
270 $this->assertEqual($expected, $result); | |
271 | |
272 $result = $this->Number->currency($value, 'EUR', array('negative'=>'-')); | |
273 $expected = '-€0,99'; | |
274 $this->assertEqual($expected, $result); | |
275 | |
276 $result = $this->Number->currency($value, 'GBP', array('negative'=>'-')); | |
277 $expected = '-99p'; | |
278 $this->assertEqual($expected, $result); | |
279 } | |
280 | |
281 /** | |
282 * testCurrencyZero method | |
283 * | |
284 * @access public | |
285 * @return void | |
286 */ | |
287 function testCurrencyZero() { | |
288 $value = '0'; | |
289 | |
290 $result = $this->Number->currency($value, 'USD'); | |
291 $expected = '$0.00'; | |
292 $this->assertEqual($expected, $result); | |
293 | |
294 $result = $this->Number->currency($value, 'EUR'); | |
295 $expected = '€0,00'; | |
296 $this->assertEqual($expected, $result); | |
297 | |
298 $result = $this->Number->currency($value, 'GBP'); | |
299 $expected = '£0.00'; | |
300 $this->assertEqual($expected, $result); | |
301 | |
302 $result = $this->Number->currency($value, 'GBP', array('zero' => 'FREE!')); | |
303 $expected = 'FREE!'; | |
304 $this->assertEqual($expected, $result); | |
305 } | |
306 | |
307 /** | |
308 * testCurrencyOptions method | |
309 * | |
310 * @access public | |
311 * @return void | |
312 */ | |
313 function testCurrencyOptions() { | |
314 $value = '1234567.89'; | |
315 | |
316 $result = $this->Number->currency($value, null, array('before' => 'GBP')); | |
317 $expected = 'GBP1,234,567.89'; | |
318 $this->assertEqual($expected, $result); | |
319 | |
320 $result = $this->Number->currency($value, 'GBP', array('places' => 0)); | |
321 $expected = '£1,234,568'; | |
322 $this->assertEqual($expected, $result); | |
323 | |
324 $result = $this->Number->currency('1234567.8912345', null, array('before' => 'GBP', 'places' => 3)); | |
325 $expected = 'GBP1,234,567.891'; | |
326 $this->assertEqual($expected, $result); | |
327 | |
328 $result = $this->Number->currency('650.120001', null, array('before' => 'GBP', 'places' => 4)); | |
329 $expected = 'GBP650.1200'; | |
330 $this->assertEqual($expected, $result); | |
331 | |
332 $result = $this->Number->currency($value, 'GBP', array('escape' => true)); | |
333 $expected = '&#163;1,234,567.89'; | |
334 $this->assertEqual($expected, $result); | |
335 | |
336 $result = $this->Number->currency('0.35', 'USD', array('after' => false)); | |
337 $expected = '$0.35'; | |
338 $this->assertEqual($expected, $result); | |
339 | |
340 $result = $this->Number->currency('0.35', 'GBP', array('after' => false)); | |
341 $expected = '£0.35'; | |
342 $this->assertEqual($expected, $result); | |
343 | |
344 $result = $this->Number->currency('0.35', 'GBP'); | |
345 $expected = '35p'; | |
346 $this->assertEqual($expected, $result); | |
347 | |
348 $result = $this->Number->currency('0.35', 'EUR'); | |
349 $expected = '€0,35'; | |
350 $this->assertEqual($expected, $result); | |
351 } | |
352 | |
353 /** | |
354 * testToReadableSize method | |
355 * | |
356 * @access public | |
357 * @return void | |
358 */ | |
359 function testToReadableSize() { | |
360 $result = $this->Number->toReadableSize(0); | |
361 $expected = '0 Bytes'; | |
362 $this->assertEqual($expected, $result); | |
363 | |
364 $result = $this->Number->toReadableSize(1); | |
365 $expected = '1 Byte'; | |
366 $this->assertEqual($expected, $result); | |
367 | |
368 $result = $this->Number->toReadableSize(45); | |
369 $expected = '45 Bytes'; | |
370 $this->assertEqual($expected, $result); | |
371 | |
372 $result = $this->Number->toReadableSize(1023); | |
373 $expected = '1023 Bytes'; | |
374 $this->assertEqual($expected, $result); | |
375 | |
376 $result = $this->Number->toReadableSize(1024); | |
377 $expected = '1 KB'; | |
378 $this->assertEqual($expected, $result); | |
379 | |
380 $result = $this->Number->toReadableSize(1024*512); | |
381 $expected = '512 KB'; | |
382 $this->assertEqual($expected, $result); | |
383 | |
384 $result = $this->Number->toReadableSize(1024*1024-1); | |
385 $expected = '1.00 MB'; | |
386 $this->assertEqual($expected, $result); | |
387 | |
388 $result = $this->Number->toReadableSize(1024*1024*512); | |
389 $expected = '512.00 MB'; | |
390 $this->assertEqual($expected, $result); | |
391 | |
392 $result = $this->Number->toReadableSize(1024*1024*1024-1); | |
393 $expected = '1.00 GB'; | |
394 $this->assertEqual($expected, $result); | |
395 | |
396 $result = $this->Number->toReadableSize(1024*1024*1024*512); | |
397 $expected = '512.00 GB'; | |
398 $this->assertEqual($expected, $result); | |
399 | |
400 $result = $this->Number->toReadableSize(1024*1024*1024*1024-1); | |
401 $expected = '1.00 TB'; | |
402 $this->assertEqual($expected, $result); | |
403 | |
404 $result = $this->Number->toReadableSize(1024*1024*1024*1024*512); | |
405 $expected = '512.00 TB'; | |
406 $this->assertEqual($expected, $result); | |
407 | |
408 $result = $this->Number->toReadableSize(1024*1024*1024*1024*1024-1); | |
409 $expected = '1024.00 TB'; | |
410 $this->assertEqual($expected, $result); | |
411 | |
412 $result = $this->Number->toReadableSize(1024*1024*1024*1024*1024*1024); | |
413 $expected = (1024 * 1024) . '.00 TB'; | |
414 $this->assertEqual($expected, $result); | |
415 } | |
416 | |
417 /** | |
418 * testToPercentage method | |
419 * | |
420 * @access public | |
421 * @return void | |
422 */ | |
423 function testToPercentage() { | |
424 $result = $this->Number->toPercentage(45, 0); | |
425 $expected = '45%'; | |
426 $this->assertEqual($result, $expected); | |
427 | |
428 $result = $this->Number->toPercentage(45, 2); | |
429 $expected = '45.00%'; | |
430 $this->assertEqual($result, $expected); | |
431 | |
432 $result = $this->Number->toPercentage(0, 0); | |
433 $expected = '0%'; | |
434 $this->assertEqual($result, $expected); | |
435 | |
436 $result = $this->Number->toPercentage(0, 4); | |
437 $expected = '0.0000%'; | |
438 $this->assertEqual($result, $expected); | |
439 } | |
440 } |