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

/File/IsImageTest.php

https://bitbucket.org/sasezaki/mirror-zf1-standard-trunk-tests-validate-dir
PHP | 196 lines | 111 code | 22 blank | 63 comment | 4 complexity | 27a122ee10b822b52a9f9f327d89cd82 MD5 | raw file
  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_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. * @version $Id$
  21. */
  22. // Call Zend_Validate_File_IsImageTest::main() if this source file is executed directly.
  23. if (!defined("PHPUnit_MAIN_METHOD")) {
  24. define("PHPUnit_MAIN_METHOD", "Zend_Validate_File_IsImageTest::main");
  25. }
  26. /**
  27. * @see Zend_Validate_File_IsImage
  28. */
  29. require_once 'Zend/Validate/File/IsImage.php';
  30. /**
  31. * IsImage testbed
  32. *
  33. * @category Zend
  34. * @package Zend_Validate_File
  35. * @subpackage UnitTests
  36. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  37. * @license http://framework.zend.com/license/new-bsd New BSD License
  38. * @group Zend_Validate
  39. */
  40. class Zend_Validate_File_IsImageTest extends PHPUnit_Framework_TestCase
  41. {
  42. /**
  43. * Runs the test methods of this class.
  44. *
  45. * @return void
  46. */
  47. public static function main()
  48. {
  49. $suite = new PHPUnit_Framework_TestSuite("Zend_Validate_File_IsImageTest");
  50. $result = PHPUnit_TextUI_TestRunner::run($suite);
  51. }
  52. /**
  53. * Ensures that the validator follows expected behavior
  54. *
  55. * @return void
  56. */
  57. public function testBasic()
  58. {
  59. $valuesExpected = array(
  60. array(null, true),
  61. array('jpeg', true),
  62. array('test/notype', false),
  63. array('image/gif, image/jpeg', true),
  64. array(array('image/vasa', 'image/jpeg'), true),
  65. array(array('image/jpeg', 'gif'), true),
  66. array(array('image/gif', 'gif'), false),
  67. );
  68. $files = array(
  69. 'name' => 'picture.jpg',
  70. 'type' => 'image/jpeg',
  71. 'size' => 200,
  72. 'tmp_name' => dirname(__FILE__) . '/_files/picture.jpg',
  73. 'error' => 0
  74. );
  75. foreach ($valuesExpected as $element) {
  76. $validator = new Zend_Validate_File_IsImage($element[0]);
  77. $validator->enableHeaderCheck();
  78. $this->assertEquals(
  79. $element[1],
  80. $validator->isValid(dirname(__FILE__) . '/_files/picture.jpg', $files),
  81. "Tested with " . var_export($element, 1)
  82. );
  83. }
  84. }
  85. /**
  86. * Ensures that getMimeType() returns expected value
  87. *
  88. * @return void
  89. */
  90. public function testGetMimeType()
  91. {
  92. $validator = new Zend_Validate_File_IsImage('image/gif');
  93. $this->assertEquals('image/gif', $validator->getMimeType());
  94. $validator = new Zend_Validate_File_IsImage(array('image/gif', 'video', 'text/test'));
  95. $this->assertEquals('image/gif,video,text/test', $validator->getMimeType());
  96. $validator = new Zend_Validate_File_IsImage(array('image/gif', 'video', 'text/test'));
  97. $this->assertEquals(array('image/gif', 'video', 'text/test'), $validator->getMimeType(true));
  98. }
  99. /**
  100. * Ensures that setMimeType() returns expected value
  101. *
  102. * @return void
  103. */
  104. public function testSetMimeType()
  105. {
  106. $validator = new Zend_Validate_File_IsImage('image/gif');
  107. $validator->setMimeType('image/jpeg');
  108. $this->assertEquals('image/jpeg', $validator->getMimeType());
  109. $this->assertEquals(array('image/jpeg'), $validator->getMimeType(true));
  110. $validator->setMimeType('image/gif, text/test');
  111. $this->assertEquals('image/gif,text/test', $validator->getMimeType());
  112. $this->assertEquals(array('image/gif', 'text/test'), $validator->getMimeType(true));
  113. $validator->setMimeType(array('video/mpeg', 'gif'));
  114. $this->assertEquals('video/mpeg,gif', $validator->getMimeType());
  115. $this->assertEquals(array('video/mpeg', 'gif'), $validator->getMimeType(true));
  116. }
  117. /**
  118. * Ensures that addMimeType() returns expected value
  119. *
  120. * @return void
  121. */
  122. public function testAddMimeType()
  123. {
  124. $validator = new Zend_Validate_File_IsImage('image/gif');
  125. $validator->addMimeType('text');
  126. $this->assertEquals('image/gif,text', $validator->getMimeType());
  127. $this->assertEquals(array('image/gif', 'text'), $validator->getMimeType(true));
  128. $validator->addMimeType('jpg, to');
  129. $this->assertEquals('image/gif,text,jpg,to', $validator->getMimeType());
  130. $this->assertEquals(array('image/gif', 'text', 'jpg', 'to'), $validator->getMimeType(true));
  131. $validator->addMimeType(array('zip', 'ti'));
  132. $this->assertEquals('image/gif,text,jpg,to,zip,ti', $validator->getMimeType());
  133. $this->assertEquals(array('image/gif', 'text', 'jpg', 'to', 'zip', 'ti'), $validator->getMimeType(true));
  134. $validator->addMimeType('');
  135. $this->assertEquals('image/gif,text,jpg,to,zip,ti', $validator->getMimeType());
  136. $this->assertEquals(array('image/gif', 'text', 'jpg', 'to', 'zip', 'ti'), $validator->getMimeType(true));
  137. }
  138. /**
  139. * @ZF-8111
  140. */
  141. public function testErrorMessages()
  142. {
  143. $files = array(
  144. 'name' => 'picture.jpg',
  145. 'type' => 'image/jpeg',
  146. 'size' => 200,
  147. 'tmp_name' => dirname(__FILE__) . '/_files/picture.jpg',
  148. 'error' => 0
  149. );
  150. $validator = new Zend_Validate_File_IsImage('test/notype');
  151. $validator->enableHeaderCheck();
  152. $this->assertFalse($validator->isValid(dirname(__FILE__) . '/_files/picture.jpg', $files));
  153. $error = $validator->getMessages();
  154. $this->assertTrue(array_key_exists('fileIsImageFalseType', $error));
  155. }
  156. public function testOptionsAtConstructor()
  157. {
  158. if (!extension_loaded('fileinfo')) {
  159. $this->markTestSkipped('This PHP Version has no finfo installed');
  160. }
  161. $validator = new Zend_Validate_File_IsImage(array(
  162. 'image/gif',
  163. 'image/jpg',
  164. 'magicfile' => dirname(__FILE__) . '/_files/magic.mime',
  165. 'headerCheck' => true));
  166. $this->assertEquals(dirname(__FILE__) . '/_files/magic.mime', $validator->getMagicFile());
  167. $this->assertTrue($validator->getHeaderCheck());
  168. $this->assertEquals('image/gif,image/jpg', $validator->getMimeType());
  169. }
  170. }
  171. // Call Zend_Validate_File_IsImage::main() if this source file is executed directly.
  172. if (PHPUnit_MAIN_METHOD == "Zend_Validate_File_IsImage::main") {
  173. Zend_Validate_File_IsImage::main();
  174. }