PageRenderTime 49ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/Zend/Filter/BooleanTest.php

https://bitbucket.org/ksekar/campus
PHP | 797 lines | 580 code | 41 blank | 176 comment | 0 complexity | ce304127e97f801b7c33a2fa6ee480eb MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.0, MIT
  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_Filter
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2012 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. * @see Zend_Filter_Boolean
  24. */
  25. require_once 'Zend/Filter/Boolean.php';
  26. /**
  27. * @category Zend
  28. * @package Zend_Filter
  29. * @subpackage UnitTests
  30. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  31. * @license http://framework.zend.com/license/new-bsd New BSD License
  32. * @group Zend_Filter
  33. */
  34. class Zend_Filter_BooleanTest extends PHPUnit_Framework_TestCase
  35. {
  36. /**
  37. * Zend_Filter_Boolean object
  38. *
  39. * @var Zend_Filter_Boolean
  40. */
  41. protected $_filter;
  42. /**
  43. * Creates a new Zend_Filter_Boolean object for each test method
  44. *
  45. * @return void
  46. */
  47. public function setUp()
  48. {
  49. $this->_filter = new Zend_Filter_Boolean();
  50. }
  51. /**
  52. * Ensures that the filter follows expected behavior
  53. *
  54. * @return void
  55. */
  56. public function testBasic()
  57. {
  58. $this->assertFalse($this->_filter->filter(false));
  59. $this->assertTrue($this->_filter->filter(true));
  60. $this->assertFalse($this->_filter->filter(0));
  61. $this->assertTrue($this->_filter->filter(1));
  62. $this->assertFalse($this->_filter->filter(0.0));
  63. $this->assertTrue($this->_filter->filter(1.0));
  64. $this->assertFalse($this->_filter->filter(''));
  65. $this->assertTrue($this->_filter->filter('abc'));
  66. $this->assertFalse($this->_filter->filter('0'));
  67. $this->assertTrue($this->_filter->filter('1'));
  68. $this->assertFalse($this->_filter->filter(array()));
  69. $this->assertTrue($this->_filter->filter(array('xxx')));
  70. $this->assertFalse($this->_filter->filter(null));
  71. $this->assertTrue($this->_filter->filter('false'));
  72. $this->assertTrue($this->_filter->filter('true'));
  73. $this->assertTrue($this->_filter->filter('no'));
  74. $this->assertTrue($this->_filter->filter('yes'));
  75. }
  76. /**
  77. * Ensures that the filter follows expected behavior
  78. *
  79. * @return void
  80. */
  81. public function testOnlyBoolean()
  82. {
  83. $this->_filter->setType(Zend_Filter_Boolean::BOOLEAN);
  84. $this->assertFalse($this->_filter->filter(false));
  85. $this->assertTrue($this->_filter->filter(true));
  86. $this->assertTrue($this->_filter->filter(0));
  87. $this->assertTrue($this->_filter->filter(1));
  88. $this->assertTrue($this->_filter->filter(0.0));
  89. $this->assertTrue($this->_filter->filter(1.0));
  90. $this->assertTrue($this->_filter->filter(''));
  91. $this->assertTrue($this->_filter->filter('abc'));
  92. $this->assertTrue($this->_filter->filter('0'));
  93. $this->assertTrue($this->_filter->filter('1'));
  94. $this->assertTrue($this->_filter->filter(array()));
  95. $this->assertTrue($this->_filter->filter(array('xxx')));
  96. $this->assertTrue($this->_filter->filter(null));
  97. $this->assertTrue($this->_filter->filter('false'));
  98. $this->assertTrue($this->_filter->filter('true'));
  99. $this->assertTrue($this->_filter->filter('no'));
  100. $this->assertTrue($this->_filter->filter('yes'));
  101. }
  102. /**
  103. * Ensures that the filter follows expected behavior
  104. *
  105. * @return void
  106. */
  107. public function testOnlyInteger()
  108. {
  109. $this->_filter->setType(Zend_Filter_Boolean::INTEGER);
  110. $this->assertTrue($this->_filter->filter(false));
  111. $this->assertTrue($this->_filter->filter(true));
  112. $this->assertFalse($this->_filter->filter(0));
  113. $this->assertTrue($this->_filter->filter(1));
  114. $this->assertTrue($this->_filter->filter(0.0));
  115. $this->assertTrue($this->_filter->filter(1.0));
  116. $this->assertTrue($this->_filter->filter(''));
  117. $this->assertTrue($this->_filter->filter('abc'));
  118. $this->assertTrue($this->_filter->filter('0'));
  119. $this->assertTrue($this->_filter->filter('1'));
  120. $this->assertTrue($this->_filter->filter(array()));
  121. $this->assertTrue($this->_filter->filter(array('xxx')));
  122. $this->assertTrue($this->_filter->filter(null));
  123. $this->assertTrue($this->_filter->filter('false'));
  124. $this->assertTrue($this->_filter->filter('true'));
  125. $this->assertTrue($this->_filter->filter('no'));
  126. $this->assertTrue($this->_filter->filter('yes'));
  127. }
  128. /**
  129. * Ensures that the filter follows expected behavior
  130. *
  131. * @return void
  132. */
  133. public function testOnlyFloat()
  134. {
  135. $this->_filter->setType(Zend_Filter_Boolean::FLOAT);
  136. $this->assertTrue($this->_filter->filter(false));
  137. $this->assertTrue($this->_filter->filter(true));
  138. $this->assertTrue($this->_filter->filter(0));
  139. $this->assertTrue($this->_filter->filter(1));
  140. $this->assertFalse($this->_filter->filter(0.0));
  141. $this->assertTrue($this->_filter->filter(1.0));
  142. $this->assertTrue($this->_filter->filter(''));
  143. $this->assertTrue($this->_filter->filter('abc'));
  144. $this->assertTrue($this->_filter->filter('0'));
  145. $this->assertTrue($this->_filter->filter('1'));
  146. $this->assertTrue($this->_filter->filter(array()));
  147. $this->assertTrue($this->_filter->filter(array('xxx')));
  148. $this->assertTrue($this->_filter->filter(null));
  149. $this->assertTrue($this->_filter->filter('false'));
  150. $this->assertTrue($this->_filter->filter('true'));
  151. $this->assertTrue($this->_filter->filter('no'));
  152. $this->assertTrue($this->_filter->filter('yes'));
  153. }
  154. /**
  155. * Ensures that the filter follows expected behavior
  156. *
  157. * @return void
  158. */
  159. public function testOnlyString()
  160. {
  161. $this->_filter->setType(Zend_Filter_Boolean::STRING);
  162. $this->assertTrue($this->_filter->filter(false));
  163. $this->assertTrue($this->_filter->filter(true));
  164. $this->assertTrue($this->_filter->filter(0));
  165. $this->assertTrue($this->_filter->filter(1));
  166. $this->assertTrue($this->_filter->filter(0.0));
  167. $this->assertTrue($this->_filter->filter(1.0));
  168. $this->assertFalse($this->_filter->filter(''));
  169. $this->assertTrue($this->_filter->filter('abc'));
  170. $this->assertTrue($this->_filter->filter('0'));
  171. $this->assertTrue($this->_filter->filter('1'));
  172. $this->assertTrue($this->_filter->filter(array()));
  173. $this->assertTrue($this->_filter->filter(array('xxx')));
  174. $this->assertTrue($this->_filter->filter(null));
  175. $this->assertTrue($this->_filter->filter('false'));
  176. $this->assertTrue($this->_filter->filter('true'));
  177. $this->assertTrue($this->_filter->filter('no'));
  178. $this->assertTrue($this->_filter->filter('yes'));
  179. }
  180. /**
  181. * Ensures that the filter follows expected behavior
  182. *
  183. * @return void
  184. */
  185. public function testOnlyZero()
  186. {
  187. $this->_filter->setType(Zend_Filter_Boolean::ZERO);
  188. $this->assertTrue($this->_filter->filter(false));
  189. $this->assertTrue($this->_filter->filter(true));
  190. $this->assertTrue($this->_filter->filter(0));
  191. $this->assertTrue($this->_filter->filter(1));
  192. $this->assertTrue($this->_filter->filter(0.0));
  193. $this->assertTrue($this->_filter->filter(1.0));
  194. $this->assertTrue($this->_filter->filter(''));
  195. $this->assertTrue($this->_filter->filter('abc'));
  196. $this->assertFalse($this->_filter->filter('0'));
  197. $this->assertTrue($this->_filter->filter('1'));
  198. $this->assertTrue($this->_filter->filter(array()));
  199. $this->assertTrue($this->_filter->filter(array('xxx')));
  200. $this->assertTrue($this->_filter->filter(null));
  201. $this->assertTrue($this->_filter->filter('false'));
  202. $this->assertTrue($this->_filter->filter('true'));
  203. $this->assertTrue($this->_filter->filter('no'));
  204. $this->assertTrue($this->_filter->filter('yes'));
  205. }
  206. /**
  207. * Ensures that the filter follows expected behavior
  208. *
  209. * @return void
  210. */
  211. public function testOnlyArray()
  212. {
  213. $this->_filter->setType(Zend_Filter_Boolean::EMPTY_ARRAY);
  214. $this->assertTrue($this->_filter->filter(false));
  215. $this->assertTrue($this->_filter->filter(true));
  216. $this->assertTrue($this->_filter->filter(0));
  217. $this->assertTrue($this->_filter->filter(1));
  218. $this->assertTrue($this->_filter->filter(0.0));
  219. $this->assertTrue($this->_filter->filter(1.0));
  220. $this->assertTrue($this->_filter->filter(''));
  221. $this->assertTrue($this->_filter->filter('abc'));
  222. $this->assertTrue($this->_filter->filter('0'));
  223. $this->assertTrue($this->_filter->filter('1'));
  224. $this->assertFalse($this->_filter->filter(array()));
  225. $this->assertTrue($this->_filter->filter(array('xxx')));
  226. $this->assertTrue($this->_filter->filter(null));
  227. $this->assertTrue($this->_filter->filter('false'));
  228. $this->assertTrue($this->_filter->filter('true'));
  229. $this->assertTrue($this->_filter->filter('no'));
  230. $this->assertTrue($this->_filter->filter('yes'));
  231. }
  232. /**
  233. * Ensures that the filter follows expected behavior
  234. *
  235. * @return void
  236. */
  237. public function testOnlyNull()
  238. {
  239. $this->_filter->setType(Zend_Filter_Boolean::NULL);
  240. $this->assertTrue($this->_filter->filter(false));
  241. $this->assertTrue($this->_filter->filter(true));
  242. $this->assertTrue($this->_filter->filter(0));
  243. $this->assertTrue($this->_filter->filter(1));
  244. $this->assertTrue($this->_filter->filter(0.0));
  245. $this->assertTrue($this->_filter->filter(1.0));
  246. $this->assertTrue($this->_filter->filter(''));
  247. $this->assertTrue($this->_filter->filter('abc'));
  248. $this->assertTrue($this->_filter->filter('0'));
  249. $this->assertTrue($this->_filter->filter('1'));
  250. $this->assertTrue($this->_filter->filter(array()));
  251. $this->assertTrue($this->_filter->filter(array('xxx')));
  252. $this->assertFalse($this->_filter->filter(null));
  253. $this->assertTrue($this->_filter->filter('false'));
  254. $this->assertTrue($this->_filter->filter('true'));
  255. $this->assertTrue($this->_filter->filter('no'));
  256. $this->assertTrue($this->_filter->filter('yes'));
  257. }
  258. /**
  259. * Ensures that the filter follows expected behavior
  260. *
  261. * @return void
  262. */
  263. public function testOnlyPHP()
  264. {
  265. $this->_filter->setType(Zend_Filter_Boolean::PHP);
  266. $this->assertFalse($this->_filter->filter(false));
  267. $this->assertTrue($this->_filter->filter(true));
  268. $this->assertFalse($this->_filter->filter(0));
  269. $this->assertTrue($this->_filter->filter(1));
  270. $this->assertFalse($this->_filter->filter(0.0));
  271. $this->assertTrue($this->_filter->filter(1.0));
  272. $this->assertFalse($this->_filter->filter(''));
  273. $this->assertTrue($this->_filter->filter('abc'));
  274. $this->assertFalse($this->_filter->filter('0'));
  275. $this->assertTrue($this->_filter->filter('1'));
  276. $this->assertFalse($this->_filter->filter(array()));
  277. $this->assertTrue($this->_filter->filter(array('xxx')));
  278. $this->assertFalse($this->_filter->filter(null));
  279. $this->assertTrue($this->_filter->filter('false'));
  280. $this->assertTrue($this->_filter->filter('true'));
  281. $this->assertTrue($this->_filter->filter('no'));
  282. $this->assertTrue($this->_filter->filter('yes'));
  283. }
  284. /**
  285. * Ensures that the filter follows expected behavior
  286. *
  287. * @return void
  288. */
  289. public function testOnlyFalseString()
  290. {
  291. $this->_filter->setType(Zend_Filter_Boolean::FALSE_STRING);
  292. $this->assertTrue($this->_filter->filter(false));
  293. $this->assertTrue($this->_filter->filter(true));
  294. $this->assertTrue($this->_filter->filter(0));
  295. $this->assertTrue($this->_filter->filter(1));
  296. $this->assertTrue($this->_filter->filter(0.0));
  297. $this->assertTrue($this->_filter->filter(1.0));
  298. $this->assertTrue($this->_filter->filter(''));
  299. $this->assertTrue($this->_filter->filter('abc'));
  300. $this->assertTrue($this->_filter->filter('0'));
  301. $this->assertTrue($this->_filter->filter('1'));
  302. $this->assertTrue($this->_filter->filter(array()));
  303. $this->assertTrue($this->_filter->filter(array('xxx')));
  304. $this->assertTrue($this->_filter->filter(null));
  305. $this->assertFalse($this->_filter->filter('false'));
  306. $this->assertTrue($this->_filter->filter('true'));
  307. $this->assertTrue($this->_filter->filter('no'));
  308. $this->assertTrue($this->_filter->filter('yes'));
  309. }
  310. /**
  311. * Ensures that the filter follows expected behavior
  312. *
  313. * @return void
  314. */
  315. public function testOnlyYes()
  316. {
  317. $this->_filter->setType(Zend_Filter_Boolean::YES);
  318. $this->_filter->setLocale('en');
  319. $this->assertTrue($this->_filter->filter(false));
  320. $this->assertTrue($this->_filter->filter(true));
  321. $this->assertTrue($this->_filter->filter(0));
  322. $this->assertTrue($this->_filter->filter(1));
  323. $this->assertTrue($this->_filter->filter(0.0));
  324. $this->assertTrue($this->_filter->filter(1.0));
  325. $this->assertTrue($this->_filter->filter(''));
  326. $this->assertTrue($this->_filter->filter('abc'));
  327. $this->assertTrue($this->_filter->filter('0'));
  328. $this->assertTrue($this->_filter->filter('1'));
  329. $this->assertTrue($this->_filter->filter(array()));
  330. $this->assertTrue($this->_filter->filter(array('xxx')));
  331. $this->assertTrue($this->_filter->filter(null));
  332. $this->assertTrue($this->_filter->filter('false'));
  333. $this->assertTrue($this->_filter->filter('true'));
  334. $this->assertFalse($this->_filter->filter('no'));
  335. $this->assertTrue($this->_filter->filter('yes'));
  336. }
  337. /**
  338. * Ensures that the filter follows expected behavior
  339. *
  340. * @return void
  341. */
  342. public function testOnlyAll()
  343. {
  344. $this->_filter->setType(Zend_Filter_Boolean::ALL);
  345. $this->_filter->setLocale('en');
  346. $this->assertFalse($this->_filter->filter(false));
  347. $this->assertTrue($this->_filter->filter(true));
  348. $this->assertFalse($this->_filter->filter(0));
  349. $this->assertTrue($this->_filter->filter(1));
  350. $this->assertFalse($this->_filter->filter(0.0));
  351. $this->assertTrue($this->_filter->filter(1.0));
  352. $this->assertFalse($this->_filter->filter(''));
  353. $this->assertTrue($this->_filter->filter('abc'));
  354. $this->assertFalse($this->_filter->filter('0'));
  355. $this->assertTrue($this->_filter->filter('1'));
  356. $this->assertFalse($this->_filter->filter(array()));
  357. $this->assertTrue($this->_filter->filter(array('xxx')));
  358. $this->assertFalse($this->_filter->filter(null));
  359. $this->assertFalse($this->_filter->filter('false'));
  360. $this->assertTrue($this->_filter->filter('true'));
  361. $this->assertFalse($this->_filter->filter('no'));
  362. $this->assertTrue($this->_filter->filter('yes'));
  363. }
  364. /**
  365. * Ensures that the filter follows expected behavior
  366. *
  367. * @return void
  368. */
  369. public function testArrayConstantNotation()
  370. {
  371. $filter = new Zend_Filter_Boolean(
  372. array(
  373. 'type' => array(
  374. Zend_Filter_Boolean::ZERO,
  375. Zend_Filter_Boolean::STRING,
  376. Zend_Filter_Boolean::BOOLEAN
  377. )
  378. )
  379. );
  380. $this->assertFalse($filter->filter(false));
  381. $this->assertTrue($filter->filter(true));
  382. $this->assertTrue($filter->filter(0));
  383. $this->assertTrue($filter->filter(1));
  384. $this->assertTrue($filter->filter(0.0));
  385. $this->assertTrue($filter->filter(1.0));
  386. $this->assertFalse($filter->filter(''));
  387. $this->assertTrue($filter->filter('abc'));
  388. $this->assertFalse($filter->filter('0'));
  389. $this->assertTrue($filter->filter('1'));
  390. $this->assertTrue($filter->filter(array()));
  391. $this->assertTrue($filter->filter(array('xxx')));
  392. $this->assertTrue($filter->filter(null));
  393. $this->assertTrue($filter->filter('false'));
  394. $this->assertTrue($filter->filter('true'));
  395. $this->assertTrue($filter->filter('no'));
  396. $this->assertTrue($filter->filter('yes'));
  397. }
  398. /**
  399. * Ensures that the filter follows expected behavior
  400. *
  401. * @return void
  402. */
  403. public function testArrayConfigNotation()
  404. {
  405. $filter = new Zend_Filter_Boolean(
  406. array(
  407. 'type' => array(
  408. Zend_Filter_Boolean::ZERO,
  409. Zend_Filter_Boolean::STRING,
  410. Zend_Filter_Boolean::BOOLEAN),
  411. 'test' => false
  412. )
  413. );
  414. $this->assertFalse($filter->filter(false));
  415. $this->assertTrue($filter->filter(true));
  416. $this->assertTrue($filter->filter(0));
  417. $this->assertTrue($filter->filter(1));
  418. $this->assertTrue($filter->filter(0.0));
  419. $this->assertTrue($filter->filter(1.0));
  420. $this->assertFalse($filter->filter(''));
  421. $this->assertTrue($filter->filter('abc'));
  422. $this->assertFalse($filter->filter('0'));
  423. $this->assertTrue($filter->filter('1'));
  424. $this->assertTrue($filter->filter(array()));
  425. $this->assertTrue($filter->filter(array('xxx')));
  426. $this->assertTrue($filter->filter(null));
  427. $this->assertTrue($filter->filter('false'));
  428. $this->assertTrue($filter->filter('true'));
  429. $this->assertTrue($filter->filter('no'));
  430. $this->assertTrue($filter->filter('yes'));
  431. }
  432. /**
  433. * Ensures that the filter follows expected behavior
  434. *
  435. * @return void
  436. */
  437. public function testMultiConstantNotation()
  438. {
  439. $filter = new Zend_Filter_Boolean(
  440. Zend_Filter_Boolean::ZERO + Zend_Filter_Boolean::STRING + Zend_Filter_Boolean::BOOLEAN
  441. );
  442. $this->assertFalse($filter->filter(false));
  443. $this->assertTrue($filter->filter(true));
  444. $this->assertTrue($filter->filter(0));
  445. $this->assertTrue($filter->filter(1));
  446. $this->assertTrue($filter->filter(0.0));
  447. $this->assertTrue($filter->filter(1.0));
  448. $this->assertFalse($filter->filter(''));
  449. $this->assertTrue($filter->filter('abc'));
  450. $this->assertFalse($filter->filter('0'));
  451. $this->assertTrue($filter->filter('1'));
  452. $this->assertTrue($filter->filter(array()));
  453. $this->assertTrue($filter->filter(array('xxx')));
  454. $this->assertTrue($filter->filter(null));
  455. $this->assertTrue($filter->filter('false'));
  456. $this->assertTrue($filter->filter('true'));
  457. $this->assertTrue($filter->filter('no'));
  458. $this->assertTrue($filter->filter('yes'));
  459. }
  460. /**
  461. * Ensures that the filter follows expected behavior
  462. *
  463. * @return void
  464. */
  465. public function testStringNotation()
  466. {
  467. $filter = new Zend_Filter_Boolean(
  468. array(
  469. 'type' => array('zero', 'string', 'boolean')
  470. )
  471. );
  472. $this->assertFalse($filter->filter(false));
  473. $this->assertTrue($filter->filter(true));
  474. $this->assertTrue($filter->filter(0));
  475. $this->assertTrue($filter->filter(1));
  476. $this->assertTrue($filter->filter(0.0));
  477. $this->assertTrue($filter->filter(1.0));
  478. $this->assertFalse($filter->filter(''));
  479. $this->assertTrue($filter->filter('abc'));
  480. $this->assertFalse($filter->filter('0'));
  481. $this->assertTrue($filter->filter('1'));
  482. $this->assertTrue($filter->filter(array()));
  483. $this->assertTrue($filter->filter(array('xxx')));
  484. $this->assertTrue($filter->filter(null));
  485. $this->assertTrue($filter->filter('false'));
  486. $this->assertTrue($filter->filter('true'));
  487. $this->assertTrue($filter->filter('no'));
  488. $this->assertTrue($filter->filter('yes'));
  489. }
  490. /**
  491. * Ensures that the filter follows expected behavior
  492. *
  493. * @return void
  494. */
  495. public function testSingleStringNotation()
  496. {
  497. $filter = new Zend_Filter_Boolean(
  498. 'boolean'
  499. );
  500. $this->assertFalse($filter->filter(false));
  501. $this->assertTrue($filter->filter(true));
  502. $this->assertTrue($filter->filter(0));
  503. $this->assertTrue($filter->filter(1));
  504. $this->assertTrue($filter->filter(0.0));
  505. $this->assertTrue($filter->filter(1.0));
  506. $this->assertTrue($filter->filter(''));
  507. $this->assertTrue($filter->filter('abc'));
  508. $this->assertTrue($filter->filter('0'));
  509. $this->assertTrue($filter->filter('1'));
  510. $this->assertTrue($filter->filter(array()));
  511. $this->assertTrue($filter->filter(array('xxx')));
  512. $this->assertTrue($filter->filter(null));
  513. $this->assertTrue($filter->filter('false'));
  514. $this->assertTrue($filter->filter('true'));
  515. $this->assertTrue($filter->filter('no'));
  516. $this->assertTrue($filter->filter('yes'));
  517. }
  518. /**
  519. * Ensures that the filter follows expected behavior
  520. *
  521. * @return void
  522. */
  523. public function testSettingLocale()
  524. {
  525. $this->_filter->setType(Zend_Filter_Boolean::ALL);
  526. $this->_filter->setLocale('de');
  527. $this->assertFalse($this->_filter->filter(false));
  528. $this->assertTrue($this->_filter->filter(true));
  529. $this->assertFalse($this->_filter->filter(0));
  530. $this->assertTrue($this->_filter->filter(1));
  531. $this->assertFalse($this->_filter->filter(0.0));
  532. $this->assertTrue($this->_filter->filter(1.0));
  533. $this->assertFalse($this->_filter->filter(''));
  534. $this->assertTrue($this->_filter->filter('abc'));
  535. $this->assertFalse($this->_filter->filter('0'));
  536. $this->assertTrue($this->_filter->filter('1'));
  537. $this->assertFalse($this->_filter->filter(array()));
  538. $this->assertTrue($this->_filter->filter(array('xxx')));
  539. $this->assertFalse($this->_filter->filter(null));
  540. $this->assertFalse($this->_filter->filter('false'));
  541. $this->assertTrue($this->_filter->filter('true'));
  542. $this->assertTrue($this->_filter->filter('no'));
  543. $this->assertTrue($this->_filter->filter('yes'));
  544. $this->assertFalse($this->_filter->filter('nein'));
  545. $this->assertTrue($this->_filter->filter('ja'));
  546. }
  547. /**
  548. * Ensures that the filter follows expected behavior
  549. *
  550. * @return void
  551. */
  552. public function testSettingLocalePerConstructorString()
  553. {
  554. $filter = new Zend_Filter_Boolean(
  555. 'all', true, 'de'
  556. );
  557. $this->assertFalse($filter->filter(false));
  558. $this->assertTrue($filter->filter(true));
  559. $this->assertFalse($filter->filter(0));
  560. $this->assertTrue($filter->filter(1));
  561. $this->assertFalse($filter->filter(0.0));
  562. $this->assertTrue($filter->filter(1.0));
  563. $this->assertFalse($filter->filter(''));
  564. $this->assertTrue($filter->filter('abc'));
  565. $this->assertFalse($filter->filter('0'));
  566. $this->assertTrue($filter->filter('1'));
  567. $this->assertFalse($filter->filter(array()));
  568. $this->assertTrue($filter->filter(array('xxx')));
  569. $this->assertFalse($filter->filter(null));
  570. $this->assertFalse($filter->filter('false'));
  571. $this->assertTrue($filter->filter('true'));
  572. $this->assertTrue($filter->filter('no'));
  573. $this->assertTrue($filter->filter('yes'));
  574. $this->assertFalse($filter->filter('nein'));
  575. $this->assertTrue($filter->filter('ja'));
  576. }
  577. /**
  578. * Ensures that the filter follows expected behavior
  579. *
  580. * @return void
  581. */
  582. public function testConfigObject()
  583. {
  584. require_once 'Zend/Config.php';
  585. $options = array('type' => 'all', 'locale' => 'de');
  586. $config = new Zend_Config($options);
  587. $filter = new Zend_Filter_Boolean(
  588. $config
  589. );
  590. $this->assertFalse($filter->filter(false));
  591. $this->assertTrue($filter->filter(true));
  592. $this->assertFalse($filter->filter(0));
  593. $this->assertTrue($filter->filter(1));
  594. $this->assertFalse($filter->filter(0.0));
  595. $this->assertTrue($filter->filter(1.0));
  596. $this->assertFalse($filter->filter(''));
  597. $this->assertTrue($filter->filter('abc'));
  598. $this->assertFalse($filter->filter('0'));
  599. $this->assertTrue($filter->filter('1'));
  600. $this->assertFalse($filter->filter(array()));
  601. $this->assertTrue($filter->filter(array('xxx')));
  602. $this->assertFalse($filter->filter(null));
  603. $this->assertFalse($filter->filter('false'));
  604. $this->assertTrue($filter->filter('true'));
  605. $this->assertTrue($filter->filter('no'));
  606. $this->assertTrue($filter->filter('yes'));
  607. $this->assertFalse($filter->filter('nein'));
  608. $this->assertTrue($filter->filter('ja'));
  609. }
  610. /**
  611. * Ensures that the filter follows expected behavior
  612. *
  613. * @return void
  614. */
  615. public function testSettingLocalePerConstructorArray()
  616. {
  617. $filter = new Zend_Filter_Boolean(
  618. array('type' => 'all', 'locale' => 'de')
  619. );
  620. $this->assertFalse($filter->filter(false));
  621. $this->assertTrue($filter->filter(true));
  622. $this->assertFalse($filter->filter(0));
  623. $this->assertTrue($filter->filter(1));
  624. $this->assertFalse($filter->filter(0.0));
  625. $this->assertTrue($filter->filter(1.0));
  626. $this->assertFalse($filter->filter(''));
  627. $this->assertTrue($filter->filter('abc'));
  628. $this->assertFalse($filter->filter('0'));
  629. $this->assertTrue($filter->filter('1'));
  630. $this->assertFalse($filter->filter(array()));
  631. $this->assertTrue($filter->filter(array('xxx')));
  632. $this->assertFalse($filter->filter(null));
  633. $this->assertFalse($filter->filter('false'));
  634. $this->assertTrue($filter->filter('true'));
  635. $this->assertTrue($filter->filter('no'));
  636. $this->assertTrue($filter->filter('yes'));
  637. $this->assertFalse($filter->filter('nein'));
  638. $this->assertTrue($filter->filter('ja'));
  639. }
  640. /**
  641. * Ensures that the filter follows expected behavior
  642. *
  643. * @return void
  644. */
  645. public function testSettingLocaleInstance()
  646. {
  647. $locale = new Zend_Locale('de');
  648. $filter = new Zend_Filter_Boolean(
  649. array('type' => 'all', 'locale' => $locale)
  650. );
  651. $this->assertFalse($filter->filter(false));
  652. $this->assertTrue($filter->filter(true));
  653. $this->assertFalse($filter->filter(0));
  654. $this->assertTrue($filter->filter(1));
  655. $this->assertFalse($filter->filter(0.0));
  656. $this->assertTrue($filter->filter(1.0));
  657. $this->assertFalse($filter->filter(''));
  658. $this->assertTrue($filter->filter('abc'));
  659. $this->assertFalse($filter->filter('0'));
  660. $this->assertTrue($filter->filter('1'));
  661. $this->assertFalse($filter->filter(array()));
  662. $this->assertTrue($filter->filter(array('xxx')));
  663. $this->assertFalse($filter->filter(null));
  664. $this->assertFalse($filter->filter('false'));
  665. $this->assertTrue($filter->filter('true'));
  666. $this->assertTrue($filter->filter('no'));
  667. $this->assertTrue($filter->filter('yes'));
  668. $this->assertFalse($filter->filter('nein'));
  669. $this->assertTrue($filter->filter('ja'));
  670. }
  671. /**
  672. * Ensures that the filter follows expected behavior
  673. *
  674. * @return void
  675. */
  676. public function testWithoutCasting()
  677. {
  678. $locale = new Zend_Locale('de');
  679. $filter = new Zend_Filter_Boolean(
  680. array('type' => 'all', 'casting' => false, 'locale' => $locale)
  681. );
  682. $this->assertFalse($filter->filter(false));
  683. $this->assertTrue($filter->filter(true));
  684. $this->assertFalse($filter->filter(0));
  685. $this->assertTrue($filter->filter(1));
  686. $this->assertEquals(2, $filter->filter(2));
  687. $this->assertFalse($filter->filter(0.0));
  688. $this->assertTrue($filter->filter(1.0));
  689. $this->assertEquals(0.5, $filter->filter(0.5));
  690. $this->assertFalse($filter->filter(''));
  691. $this->assertEquals('abc', $filter->filter('abc'));
  692. $this->assertFalse($filter->filter('0'));
  693. $this->assertTrue($filter->filter('1'));
  694. $this->assertEquals('2', $filter->filter('2'));
  695. $this->assertFalse($filter->filter(array()));
  696. $this->assertEquals(array('xxx'), $filter->filter(array('xxx')));
  697. $this->assertEquals(null, $filter->filter(null));
  698. $this->assertFalse($filter->filter('false'));
  699. $this->assertTrue($filter->filter('true'));
  700. $this->assertEquals('no', $filter->filter('no'));
  701. $this->assertEquals('yes', $filter->filter('yes'));
  702. $this->assertFalse($filter->filter('nein'));
  703. $this->assertTrue($filter->filter('ja'));
  704. }
  705. /**
  706. * Ensures that the filter follows expected behavior
  707. *
  708. * @return void
  709. */
  710. public function testSettingFalseType()
  711. {
  712. try {
  713. $this->_filter->setType(true);
  714. $this->fail();
  715. } catch (Zend_Exception $e) {
  716. $this->assertContains('Unknown', $e->getMessage());
  717. }
  718. }
  719. /**
  720. * Ensures that the filter follows expected behavior
  721. *
  722. * @return void
  723. */
  724. public function testGetType()
  725. {
  726. $this->assertEquals(127, $this->_filter->getType());
  727. }
  728. /**
  729. * Ensures that the filter follows expected behavior
  730. *
  731. * @return void
  732. */
  733. public function testSettingFalseLocaleType()
  734. {
  735. try {
  736. $this->_filter->setLocale(true);
  737. $this->fail();
  738. } catch (Zend_Exception $e) {
  739. $this->assertContains('Locale has to be', $e->getMessage());
  740. }
  741. }
  742. /**
  743. * Ensures that the filter follows expected behavior
  744. *
  745. * @return void
  746. */
  747. public function testSettingUnknownLocale()
  748. {
  749. try {
  750. $this->_filter->setLocale('yy');
  751. $this->fail();
  752. } catch (Zend_Exception $e) {
  753. $this->assertContains('Unknown locale', $e->getMessage());
  754. }
  755. }
  756. }