PageRenderTime 51ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/Zend/Validator/File/Md5Test.php

http://github.com/zendframework/zf2
PHP | 202 lines | 108 code | 21 blank | 73 comment | 0 complexity | 06be510310d748df62a24b3a3ccf7dbb MD5 | raw file
Possible License(s): BSD-3-Clause
  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_Validator_File
  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. */
  21. /**
  22. * @namespace
  23. */
  24. namespace ZendTest\Validator\File;
  25. use Zend\Validator\File;
  26. /**
  27. * @see Zend_Validator_File_Md5
  28. */
  29. /**
  30. * Md5 testbed
  31. *
  32. * @category Zend
  33. * @package Zend_Validator_File
  34. * @subpackage UnitTests
  35. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  36. * @license http://framework.zend.com/license/new-bsd New BSD License
  37. * @group Zend_Validator
  38. */
  39. class Md5Test extends \PHPUnit_Framework_TestCase
  40. {
  41. /**
  42. * Ensures that the validator follows expected behavior
  43. *
  44. * @return void
  45. */
  46. public function testBasic()
  47. {
  48. $valuesExpected = array(
  49. array('ed74c22109fe9f110579f77b053b8bc3', true),
  50. array('4d74c22109fe9f110579f77b053b8bc3', false),
  51. array(array('4d74c22109fe9f110579f77b053b8bc3', 'ed74c22109fe9f110579f77b053b8bc3'), true),
  52. array(array('4d74c22109fe9f110579f77b053b8bc3', '7d74c22109fe9f110579f77b053b8bc3'), false),
  53. );
  54. foreach ($valuesExpected as $element) {
  55. $validator = new File\Md5($element[0]);
  56. $this->assertEquals(
  57. $element[1],
  58. $validator->isValid(__DIR__ . '/_files/picture.jpg'),
  59. "Tested with " . var_export($element, 1)
  60. );
  61. }
  62. $validator = new File\Md5('ed74c22109fe9f110579f77b053b8bc3');
  63. $this->assertFalse($validator->isValid(__DIR__ . '/_files/nofile.mo'));
  64. $this->assertTrue(array_key_exists('fileMd5NotFound', $validator->getMessages()));
  65. $files = array(
  66. 'name' => 'test1',
  67. 'type' => 'text',
  68. 'size' => 200,
  69. 'tmp_name' => 'tmp_test1',
  70. 'error' => 0
  71. );
  72. $validator = new File\Md5('ed74c22109fe9f110579f77b053b8bc3');
  73. $this->assertFalse($validator->isValid(__DIR__ . '/_files/nofile.mo', $files));
  74. $this->assertTrue(array_key_exists('fileMd5NotFound', $validator->getMessages()));
  75. $files = array(
  76. 'name' => 'testsize.mo',
  77. 'type' => 'text',
  78. 'size' => 200,
  79. 'tmp_name' => __DIR__ . '/_files/testsize.mo',
  80. 'error' => 0
  81. );
  82. $validator = new File\Md5('ed74c22109fe9f110579f77b053b8bc3');
  83. $this->assertTrue($validator->isValid(__DIR__ . '/_files/picture.jpg', $files));
  84. $files = array(
  85. 'name' => 'testsize.mo',
  86. 'type' => 'text',
  87. 'size' => 200,
  88. 'tmp_name' => __DIR__ . '/_files/testsize.mo',
  89. 'error' => 0
  90. );
  91. $validator = new File\Md5('7d74c22109fe9f110579f77b053b8bc3');
  92. $this->assertFalse($validator->isValid(__DIR__ . '/_files/picture.jpg', $files));
  93. $this->assertTrue(array_key_exists('fileMd5DoesNotMatch', $validator->getMessages()));
  94. }
  95. /**
  96. * Ensures that getMd5() returns expected value
  97. *
  98. * @return void
  99. */
  100. public function testgetMd5()
  101. {
  102. $validator = new File\Md5('12345');
  103. $this->assertEquals(array('12345' => 'md5'), $validator->getMd5());
  104. $validator = new File\Md5(array('12345', '12333', '12344'));
  105. $this->assertEquals(array('12345' => 'md5', '12333' => 'md5', '12344' => 'md5'), $validator->getMd5());
  106. }
  107. /**
  108. * Ensures that getHash() returns expected value
  109. *
  110. * @return void
  111. */
  112. public function testgetHash()
  113. {
  114. $validator = new File\Md5('12345');
  115. $this->assertEquals(array('12345' => 'md5'), $validator->getHash());
  116. $validator = new File\Md5(array('12345', '12333', '12344'));
  117. $this->assertEquals(array('12345' => 'md5', '12333' => 'md5', '12344' => 'md5'), $validator->getHash());
  118. }
  119. /**
  120. * Ensures that setMd5() returns expected value
  121. *
  122. * @return void
  123. */
  124. public function testSetMd5()
  125. {
  126. $validator = new File\Md5('12345');
  127. $validator->setMd5('12333');
  128. $this->assertEquals(array('12333' => 'md5'), $validator->getMd5());
  129. $validator->setMd5(array('12321', '12121'));
  130. $this->assertEquals(array('12321' => 'md5', '12121' => 'md5'), $validator->getMd5());
  131. }
  132. /**
  133. * Ensures that setHash() returns expected value
  134. *
  135. * @return void
  136. */
  137. public function testSetHash()
  138. {
  139. $validator = new File\Md5('12345');
  140. $validator->setHash('12333');
  141. $this->assertEquals(array('12333' => 'md5'), $validator->getMd5());
  142. $validator->setHash(array('12321', '12121'));
  143. $this->assertEquals(array('12321' => 'md5', '12121' => 'md5'), $validator->getMd5());
  144. }
  145. /**
  146. * Ensures that addMd5() returns expected value
  147. *
  148. * @return void
  149. */
  150. public function testAddMd5()
  151. {
  152. $validator = new File\Md5('12345');
  153. $validator->addMd5('12344');
  154. $this->assertEquals(array('12345' => 'md5', '12344' => 'md5'), $validator->getMd5());
  155. $validator->addMd5(array('12321', '12121'));
  156. $this->assertEquals(array('12345' => 'md5', '12344' => 'md5', '12321' => 'md5', '12121' => 'md5'), $validator->getMd5());
  157. }
  158. /**
  159. * Ensures that addHash() returns expected value
  160. *
  161. * @return void
  162. */
  163. public function testAddHash()
  164. {
  165. $validator = new File\Md5('12345');
  166. $validator->addHash('12344');
  167. $this->assertEquals(array('12345' => 'md5', '12344' => 'md5'), $validator->getMd5());
  168. $validator->addHash(array('12321', '12121'));
  169. $this->assertEquals(array('12345' => 'md5', '12344' => 'md5', '12321' => 'md5', '12121' => 'md5'), $validator->getMd5());
  170. }
  171. /**
  172. * @group ZF-11258
  173. */
  174. public function testZF11258()
  175. {
  176. $validator = new File\Md5('12345');
  177. $this->assertFalse($validator->isValid(__DIR__ . '/_files/nofile.mo'));
  178. $this->assertTrue(array_key_exists('fileMd5NotFound', $validator->getMessages()));
  179. $this->assertContains("'nofile.mo'", current($validator->getMessages()));
  180. }
  181. }