PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/Zend/Validate/NotEmptyTest.php

https://bitbucket.org/ksekar/campus
PHP | 627 lines | 428 code | 37 blank | 162 comment | 1 complexity | 9ef8f7ded8c2c83c78b32f1888d2d20b 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_Validate
  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: NotEmptyTest.php 24594 2012-01-05 21:27:01Z matthew $
  21. */
  22. // Call Zend_Validate_NotEmptyTest::main() if this source file is executed directly.
  23. if (!defined("PHPUnit_MAIN_METHOD")) {
  24. define("PHPUnit_MAIN_METHOD", "Zend_Validate_NotEmptyTest::main");
  25. }
  26. /**
  27. * @see Zend_Validate_NotEmpty
  28. */
  29. require_once 'Zend/Validate/NotEmpty.php';
  30. /**
  31. * @category Zend
  32. * @package Zend_Validate
  33. * @subpackage UnitTests
  34. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  35. * @license http://framework.zend.com/license/new-bsd New BSD License
  36. * @group Zend_Validate
  37. */
  38. class Zend_Validate_NotEmptyTest extends PHPUnit_Framework_TestCase
  39. {
  40. /**
  41. * Runs the test methods of this class.
  42. *
  43. * @return void
  44. */
  45. public static function main()
  46. {
  47. $suite = new PHPUnit_Framework_TestSuite("Zend_Validate_NotEmptyTest");
  48. $result = PHPUnit_TextUI_TestRunner::run($suite);
  49. }
  50. /**
  51. * Zend_Validate_NotEmpty object
  52. *
  53. * @var Zend_Validate_NotEmpty
  54. */
  55. protected $_validator;
  56. /**
  57. * Creates a new Zend_Validate_NotEmpty object for each test method
  58. *
  59. * @return void
  60. */
  61. public function setUp()
  62. {
  63. $this->_validator = new Zend_Validate_NotEmpty();
  64. }
  65. /**
  66. * Ensures that the validator follows expected behavior
  67. *
  68. * ZF-6708 introduces a change for validating integer 0; it is a valid
  69. * integer value. '0' is also valid.
  70. *
  71. * @group ZF-6708
  72. * @return void
  73. */
  74. public function testBasic()
  75. {
  76. $valuesExpected = array(
  77. array('word', true),
  78. array('', false),
  79. array(' ', false),
  80. array(' word ', true),
  81. array('0', true),
  82. array(1, true),
  83. array(0, true),
  84. array(true, true),
  85. array(false, false),
  86. array(null, false),
  87. array(array(), false),
  88. array(array(5), true),
  89. );
  90. foreach ($valuesExpected as $i => $element) {
  91. $this->assertEquals($element[1], $this->_validator->isValid($element[0]),
  92. "Failed test #$i");
  93. }
  94. }
  95. /**
  96. * Ensures that the validator follows expected behavior
  97. *
  98. * @return void
  99. */
  100. public function testOnlyBoolean()
  101. {
  102. $this->_validator->setType(Zend_Validate_NotEmpty::BOOLEAN);
  103. $this->assertFalse($this->_validator->isValid(false));
  104. $this->assertTrue($this->_validator->isValid(true));
  105. $this->assertTrue($this->_validator->isValid(0));
  106. $this->assertTrue($this->_validator->isValid(1));
  107. $this->assertTrue($this->_validator->isValid(0.0));
  108. $this->assertTrue($this->_validator->isValid(1.0));
  109. $this->assertTrue($this->_validator->isValid(''));
  110. $this->assertTrue($this->_validator->isValid('abc'));
  111. $this->assertTrue($this->_validator->isValid('0'));
  112. $this->assertTrue($this->_validator->isValid('1'));
  113. $this->assertTrue($this->_validator->isValid(array()));
  114. $this->assertTrue($this->_validator->isValid(array('xxx')));
  115. $this->assertTrue($this->_validator->isValid(null));
  116. }
  117. /**
  118. * Ensures that the validator follows expected behavior
  119. *
  120. * @return void
  121. */
  122. public function testOnlyInteger()
  123. {
  124. $this->_validator->setType(Zend_Validate_NotEmpty::INTEGER);
  125. $this->assertTrue($this->_validator->isValid(false));
  126. $this->assertTrue($this->_validator->isValid(true));
  127. $this->assertFalse($this->_validator->isValid(0));
  128. $this->assertTrue($this->_validator->isValid(1));
  129. $this->assertTrue($this->_validator->isValid(0.0));
  130. $this->assertTrue($this->_validator->isValid(1.0));
  131. $this->assertTrue($this->_validator->isValid(''));
  132. $this->assertTrue($this->_validator->isValid('abc'));
  133. $this->assertTrue($this->_validator->isValid('0'));
  134. $this->assertTrue($this->_validator->isValid('1'));
  135. $this->assertTrue($this->_validator->isValid(array()));
  136. $this->assertTrue($this->_validator->isValid(array('xxx')));
  137. $this->assertTrue($this->_validator->isValid(null));
  138. }
  139. /**
  140. * Ensures that the validator follows expected behavior
  141. *
  142. * @return void
  143. */
  144. public function testOnlyFloat()
  145. {
  146. $this->_validator->setType(Zend_Validate_NotEmpty::FLOAT);
  147. $this->assertTrue($this->_validator->isValid(false));
  148. $this->assertTrue($this->_validator->isValid(true));
  149. $this->assertTrue($this->_validator->isValid(0));
  150. $this->assertTrue($this->_validator->isValid(1));
  151. $this->assertFalse($this->_validator->isValid(0.0));
  152. $this->assertTrue($this->_validator->isValid(1.0));
  153. $this->assertTrue($this->_validator->isValid(''));
  154. $this->assertTrue($this->_validator->isValid('abc'));
  155. $this->assertTrue($this->_validator->isValid('0'));
  156. $this->assertTrue($this->_validator->isValid('1'));
  157. $this->assertTrue($this->_validator->isValid(array()));
  158. $this->assertTrue($this->_validator->isValid(array('xxx')));
  159. $this->assertTrue($this->_validator->isValid(null));
  160. }
  161. /**
  162. * Ensures that the validator follows expected behavior
  163. *
  164. * @return void
  165. */
  166. public function testOnlyString()
  167. {
  168. $this->_validator->setType(Zend_Validate_NotEmpty::STRING);
  169. $this->assertTrue($this->_validator->isValid(false));
  170. $this->assertTrue($this->_validator->isValid(true));
  171. $this->assertTrue($this->_validator->isValid(0));
  172. $this->assertTrue($this->_validator->isValid(1));
  173. $this->assertTrue($this->_validator->isValid(0.0));
  174. $this->assertTrue($this->_validator->isValid(1.0));
  175. $this->assertFalse($this->_validator->isValid(''));
  176. $this->assertTrue($this->_validator->isValid('abc'));
  177. $this->assertTrue($this->_validator->isValid('0'));
  178. $this->assertTrue($this->_validator->isValid('1'));
  179. $this->assertTrue($this->_validator->isValid(array()));
  180. $this->assertTrue($this->_validator->isValid(array('xxx')));
  181. $this->assertTrue($this->_validator->isValid(null));
  182. }
  183. /**
  184. * Ensures that the validator follows expected behavior
  185. *
  186. * @return void
  187. */
  188. public function testOnlyZero()
  189. {
  190. $this->_validator->setType(Zend_Validate_NotEmpty::ZERO);
  191. $this->assertTrue($this->_validator->isValid(false));
  192. $this->assertTrue($this->_validator->isValid(true));
  193. $this->assertTrue($this->_validator->isValid(0));
  194. $this->assertTrue($this->_validator->isValid(1));
  195. $this->assertTrue($this->_validator->isValid(0.0));
  196. $this->assertTrue($this->_validator->isValid(1.0));
  197. $this->assertTrue($this->_validator->isValid(''));
  198. $this->assertTrue($this->_validator->isValid('abc'));
  199. $this->assertFalse($this->_validator->isValid('0'));
  200. $this->assertTrue($this->_validator->isValid('1'));
  201. $this->assertTrue($this->_validator->isValid(array()));
  202. $this->assertTrue($this->_validator->isValid(array('xxx')));
  203. $this->assertTrue($this->_validator->isValid(null));
  204. }
  205. /**
  206. * Ensures that the validator follows expected behavior
  207. *
  208. * @return void
  209. */
  210. public function testOnlyArray()
  211. {
  212. $this->_validator->setType(Zend_Validate_NotEmpty::EMPTY_ARRAY);
  213. $this->assertTrue($this->_validator->isValid(false));
  214. $this->assertTrue($this->_validator->isValid(true));
  215. $this->assertTrue($this->_validator->isValid(0));
  216. $this->assertTrue($this->_validator->isValid(1));
  217. $this->assertTrue($this->_validator->isValid(0.0));
  218. $this->assertTrue($this->_validator->isValid(1.0));
  219. $this->assertTrue($this->_validator->isValid(''));
  220. $this->assertTrue($this->_validator->isValid('abc'));
  221. $this->assertTrue($this->_validator->isValid('0'));
  222. $this->assertTrue($this->_validator->isValid('1'));
  223. $this->assertFalse($this->_validator->isValid(array()));
  224. $this->assertTrue($this->_validator->isValid(array('xxx')));
  225. $this->assertTrue($this->_validator->isValid(null));
  226. }
  227. /**
  228. * Ensures that the validator follows expected behavior
  229. *
  230. * @return void
  231. */
  232. public function testOnlyNull()
  233. {
  234. $this->_validator->setType(Zend_Validate_NotEmpty::NULL);
  235. $this->assertTrue($this->_validator->isValid(false));
  236. $this->assertTrue($this->_validator->isValid(true));
  237. $this->assertTrue($this->_validator->isValid(0));
  238. $this->assertTrue($this->_validator->isValid(1));
  239. $this->assertTrue($this->_validator->isValid(0.0));
  240. $this->assertTrue($this->_validator->isValid(1.0));
  241. $this->assertTrue($this->_validator->isValid(''));
  242. $this->assertTrue($this->_validator->isValid('abc'));
  243. $this->assertTrue($this->_validator->isValid('0'));
  244. $this->assertTrue($this->_validator->isValid('1'));
  245. $this->assertTrue($this->_validator->isValid(array()));
  246. $this->assertTrue($this->_validator->isValid(array('xxx')));
  247. $this->assertFalse($this->_validator->isValid(null));
  248. }
  249. /**
  250. * Ensures that the validator follows expected behavior
  251. *
  252. * @return void
  253. */
  254. public function testOnlyPHP()
  255. {
  256. $this->_validator->setType(Zend_Validate_NotEmpty::PHP);
  257. $this->assertFalse($this->_validator->isValid(false));
  258. $this->assertTrue($this->_validator->isValid(true));
  259. $this->assertFalse($this->_validator->isValid(0));
  260. $this->assertTrue($this->_validator->isValid(1));
  261. $this->assertFalse($this->_validator->isValid(0.0));
  262. $this->assertTrue($this->_validator->isValid(1.0));
  263. $this->assertFalse($this->_validator->isValid(''));
  264. $this->assertTrue($this->_validator->isValid('abc'));
  265. $this->assertFalse($this->_validator->isValid('0'));
  266. $this->assertTrue($this->_validator->isValid('1'));
  267. $this->assertFalse($this->_validator->isValid(array()));
  268. $this->assertTrue($this->_validator->isValid(array('xxx')));
  269. $this->assertFalse($this->_validator->isValid(null));
  270. }
  271. /**
  272. * Ensures that the validator follows expected behavior
  273. *
  274. * @return void
  275. */
  276. public function testOnlySpace()
  277. {
  278. $this->_validator->setType(Zend_Validate_NotEmpty::SPACE);
  279. $this->assertTrue($this->_validator->isValid(false));
  280. $this->assertTrue($this->_validator->isValid(true));
  281. $this->assertTrue($this->_validator->isValid(0));
  282. $this->assertTrue($this->_validator->isValid(1));
  283. $this->assertTrue($this->_validator->isValid(0.0));
  284. $this->assertTrue($this->_validator->isValid(1.0));
  285. $this->assertTrue($this->_validator->isValid(''));
  286. $this->assertTrue($this->_validator->isValid('abc'));
  287. $this->assertTrue($this->_validator->isValid('0'));
  288. $this->assertTrue($this->_validator->isValid('1'));
  289. $this->assertTrue($this->_validator->isValid(array()));
  290. $this->assertTrue($this->_validator->isValid(array('xxx')));
  291. $this->assertTrue($this->_validator->isValid(null));
  292. }
  293. /**
  294. * Ensures that the validator follows expected behavior
  295. *
  296. * @return void
  297. */
  298. public function testOnlyAll()
  299. {
  300. $this->_validator->setType(Zend_Validate_NotEmpty::ALL);
  301. $this->assertFalse($this->_validator->isValid(false));
  302. $this->assertTrue($this->_validator->isValid(true));
  303. $this->assertFalse($this->_validator->isValid(0));
  304. $this->assertTrue($this->_validator->isValid(1));
  305. $this->assertFalse($this->_validator->isValid(0.0));
  306. $this->assertTrue($this->_validator->isValid(1.0));
  307. $this->assertFalse($this->_validator->isValid(''));
  308. $this->assertTrue($this->_validator->isValid('abc'));
  309. $this->assertFalse($this->_validator->isValid('0'));
  310. $this->assertTrue($this->_validator->isValid('1'));
  311. $this->assertFalse($this->_validator->isValid(array()));
  312. $this->assertTrue($this->_validator->isValid(array('xxx')));
  313. $this->assertFalse($this->_validator->isValid(null));
  314. }
  315. /**
  316. * Ensures that the validator follows expected behavior
  317. *
  318. * @return void
  319. */
  320. public function testArrayConstantNotation()
  321. {
  322. $filter = new Zend_Validate_NotEmpty(
  323. array(
  324. 'type' => array(
  325. Zend_Validate_NotEmpty::ZERO,
  326. Zend_Validate_NotEmpty::STRING,
  327. Zend_Validate_NotEmpty::BOOLEAN
  328. )
  329. )
  330. );
  331. $this->assertFalse($filter->isValid(false));
  332. $this->assertTrue($filter->isValid(true));
  333. $this->assertTrue($filter->isValid(0));
  334. $this->assertTrue($filter->isValid(1));
  335. $this->assertTrue($filter->isValid(0.0));
  336. $this->assertTrue($filter->isValid(1.0));
  337. $this->assertFalse($filter->isValid(''));
  338. $this->assertTrue($filter->isValid('abc'));
  339. $this->assertFalse($filter->isValid('0'));
  340. $this->assertTrue($filter->isValid('1'));
  341. $this->assertTrue($filter->isValid(array()));
  342. $this->assertTrue($filter->isValid(array('xxx')));
  343. $this->assertTrue($filter->isValid(null));
  344. }
  345. /**
  346. * Ensures that the validator follows expected behavior
  347. *
  348. * @return void
  349. */
  350. public function testArrayConfigNotation()
  351. {
  352. $filter = new Zend_Validate_NotEmpty(
  353. array(
  354. 'type' => array(
  355. Zend_Validate_NotEmpty::ZERO,
  356. Zend_Validate_NotEmpty::STRING,
  357. Zend_Validate_NotEmpty::BOOLEAN),
  358. 'test' => false
  359. )
  360. );
  361. $this->assertFalse($filter->isValid(false));
  362. $this->assertTrue($filter->isValid(true));
  363. $this->assertTrue($filter->isValid(0));
  364. $this->assertTrue($filter->isValid(1));
  365. $this->assertTrue($filter->isValid(0.0));
  366. $this->assertTrue($filter->isValid(1.0));
  367. $this->assertFalse($filter->isValid(''));
  368. $this->assertTrue($filter->isValid('abc'));
  369. $this->assertFalse($filter->isValid('0'));
  370. $this->assertTrue($filter->isValid('1'));
  371. $this->assertTrue($filter->isValid(array()));
  372. $this->assertTrue($filter->isValid(array('xxx')));
  373. $this->assertTrue($filter->isValid(null));
  374. }
  375. /**
  376. * Ensures that the validator follows expected behavior
  377. *
  378. * @return void
  379. */
  380. public function testMultiConstantNotation()
  381. {
  382. $filter = new Zend_Validate_NotEmpty(
  383. Zend_Validate_NotEmpty::ZERO + Zend_Validate_NotEmpty::STRING + Zend_Validate_NotEmpty::BOOLEAN
  384. );
  385. $this->assertFalse($filter->isValid(false));
  386. $this->assertTrue($filter->isValid(true));
  387. $this->assertTrue($filter->isValid(0));
  388. $this->assertTrue($filter->isValid(1));
  389. $this->assertTrue($filter->isValid(0.0));
  390. $this->assertTrue($filter->isValid(1.0));
  391. $this->assertFalse($filter->isValid(''));
  392. $this->assertTrue($filter->isValid('abc'));
  393. $this->assertFalse($filter->isValid('0'));
  394. $this->assertTrue($filter->isValid('1'));
  395. $this->assertTrue($filter->isValid(array()));
  396. $this->assertTrue($filter->isValid(array('xxx')));
  397. $this->assertTrue($filter->isValid(null));
  398. }
  399. /**
  400. * Ensures that the validator follows expected behavior
  401. *
  402. * @return void
  403. */
  404. public function testStringNotation()
  405. {
  406. $filter = new Zend_Validate_NotEmpty(
  407. array(
  408. 'type' => array('zero', 'string', 'boolean')
  409. )
  410. );
  411. $this->assertFalse($filter->isValid(false));
  412. $this->assertTrue($filter->isValid(true));
  413. $this->assertTrue($filter->isValid(0));
  414. $this->assertTrue($filter->isValid(1));
  415. $this->assertTrue($filter->isValid(0.0));
  416. $this->assertTrue($filter->isValid(1.0));
  417. $this->assertFalse($filter->isValid(''));
  418. $this->assertTrue($filter->isValid('abc'));
  419. $this->assertFalse($filter->isValid('0'));
  420. $this->assertTrue($filter->isValid('1'));
  421. $this->assertTrue($filter->isValid(array()));
  422. $this->assertTrue($filter->isValid(array('xxx')));
  423. $this->assertTrue($filter->isValid(null));
  424. }
  425. /**
  426. * Ensures that the validator follows expected behavior
  427. *
  428. * @return void
  429. */
  430. public function testSingleStringNotation()
  431. {
  432. $filter = new Zend_Validate_NotEmpty(
  433. 'boolean'
  434. );
  435. $this->assertFalse($filter->isValid(false));
  436. $this->assertTrue($filter->isValid(true));
  437. $this->assertTrue($filter->isValid(0));
  438. $this->assertTrue($filter->isValid(1));
  439. $this->assertTrue($filter->isValid(0.0));
  440. $this->assertTrue($filter->isValid(1.0));
  441. $this->assertTrue($filter->isValid(''));
  442. $this->assertTrue($filter->isValid('abc'));
  443. $this->assertTrue($filter->isValid('0'));
  444. $this->assertTrue($filter->isValid('1'));
  445. $this->assertTrue($filter->isValid(array()));
  446. $this->assertTrue($filter->isValid(array('xxx')));
  447. $this->assertTrue($filter->isValid(null));
  448. }
  449. /**
  450. * Ensures that the validator follows expected behavior
  451. *
  452. * @return void
  453. */
  454. public function testConfigObject()
  455. {
  456. require_once 'Zend/Config.php';
  457. $options = array('type' => 'all');
  458. $config = new Zend_Config($options);
  459. $filter = new Zend_Validate_NotEmpty(
  460. $config
  461. );
  462. $this->assertFalse($filter->isValid(false));
  463. $this->assertTrue($filter->isValid(true));
  464. $this->assertFalse($filter->isValid(0));
  465. $this->assertTrue($filter->isValid(1));
  466. $this->assertFalse($filter->isValid(0.0));
  467. $this->assertTrue($filter->isValid(1.0));
  468. $this->assertFalse($filter->isValid(''));
  469. $this->assertTrue($filter->isValid('abc'));
  470. $this->assertFalse($filter->isValid('0'));
  471. $this->assertTrue($filter->isValid('1'));
  472. $this->assertFalse($filter->isValid(array()));
  473. $this->assertTrue($filter->isValid(array('xxx')));
  474. $this->assertFalse($filter->isValid(null));
  475. }
  476. /**
  477. * Ensures that the validator follows expected behavior
  478. *
  479. * @return void
  480. */
  481. public function testSettingFalseType()
  482. {
  483. try {
  484. $this->_validator->setType(true);
  485. $this->fail();
  486. } catch (Zend_Exception $e) {
  487. $this->assertContains('Unknown', $e->getMessage());
  488. }
  489. }
  490. /**
  491. * Ensures that the validator follows expected behavior
  492. *
  493. * @return void
  494. */
  495. public function testGetType()
  496. {
  497. $this->assertEquals(493, $this->_validator->getType());
  498. }
  499. /**
  500. * @group ZF-3236
  501. */
  502. public function testStringWithZeroShouldNotBeTreatedAsEmpty()
  503. {
  504. $this->assertTrue($this->_validator->isValid('0'));
  505. }
  506. /**
  507. * Ensures that getMessages() returns expected default value
  508. *
  509. * @return void
  510. */
  511. public function testGetMessages()
  512. {
  513. $this->assertEquals(array(), $this->_validator->getMessages());
  514. }
  515. /**
  516. * @ZF-4352
  517. */
  518. public function testNonStringValidation()
  519. {
  520. $v2 = new Zend_Validate_NotEmpty();
  521. $this->assertTrue($this->_validator->isValid($v2));
  522. }
  523. /**
  524. * @ZF-8767
  525. *
  526. * @return void
  527. */
  528. public function testZF8767()
  529. {
  530. $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING);
  531. $this->assertFalse($valid->isValid(''));
  532. $messages = $valid->getMessages();
  533. $this->assertTrue(array_key_exists('isEmpty', $messages));
  534. $this->assertContains("can't be empty", $messages['isEmpty']);
  535. }
  536. /**
  537. * @return void
  538. */
  539. public function testObjects()
  540. {
  541. $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING);
  542. $object = new ClassTest1();
  543. $this->assertFalse($valid->isValid($object));
  544. $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::OBJECT);
  545. $this->assertTrue($valid->isValid($object));
  546. }
  547. /**
  548. * @return void
  549. */
  550. public function testStringObjects()
  551. {
  552. $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING);
  553. $object = new ClassTest2();
  554. $this->assertFalse($valid->isValid($object));
  555. $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::OBJECT_STRING);
  556. $this->assertTrue($valid->isValid($object));
  557. $object = new ClassTest3();
  558. $this->assertFalse($valid->isValid($object));
  559. }
  560. }
  561. class ClassTest1 {}
  562. class ClassTest2
  563. {
  564. public function __toString()
  565. {
  566. return 'Test';
  567. }
  568. }
  569. class ClassTest3
  570. {
  571. public function toString()
  572. {
  573. return '';
  574. }
  575. }
  576. // Call Zend_Validate_NotEmptyTest::main() if this source file is executed directly.
  577. if (PHPUnit_MAIN_METHOD == "Zend_Validate_NotEmptyTest::main") {
  578. Zend_Validate_NotEmptyTest::main();
  579. }