/tests/Zend/Validator/File/ExcludeMimeTypeTest.php

https://github.com/mfairchild365/zf2 · PHP · 139 lines · 73 code · 14 blank · 52 comment · 0 complexity · 53cc09db106fab64f710cd613c168f10 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_Validator_File
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2011 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. * ExcludeMimeType testbed
  28. *
  29. * @category Zend
  30. * @package Zend_Validator_File
  31. * @subpackage UnitTests
  32. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  33. * @license http://framework.zend.com/license/new-bsd New BSD License
  34. * @group Zend_Validator
  35. */
  36. class ExcludeMimeTypeTest extends \PHPUnit_Framework_TestCase
  37. {
  38. /**
  39. * Ensures that the validator follows expected behavior
  40. *
  41. * @return void
  42. */
  43. public function testBasic()
  44. {
  45. $valuesExpected = array(
  46. array('image/gif', false),
  47. array('image', false),
  48. array('test/notype', true),
  49. array('image/gif, image/jpeg', false),
  50. array(array('image/vasa', 'image/gif'), false),
  51. array(array('image/jpeg', 'gif'), false),
  52. array(array('image/jpeg', 'jpeg'), true),
  53. );
  54. $files = array(
  55. 'name' => 'testsize.mo',
  56. 'type' => 'image/gif',
  57. 'size' => 200,
  58. 'tmp_name' => __DIR__ . '/_files/testsize.mo',
  59. 'error' => 0
  60. );
  61. foreach ($valuesExpected as $element) {
  62. $validator = new File\ExcludeMimeType($element[0]);
  63. $validator->enableHeaderCheck();
  64. $validator->isValid(__DIR__ . '/_files/testsize.mo', $files);
  65. $this->assertEquals(
  66. $element[1],
  67. $validator->isValid(__DIR__ . '/_files/testsize.mo', $files),
  68. "Tested with " . var_export($element, 1)
  69. );
  70. }
  71. }
  72. /**
  73. * Ensures that getMimeType() returns expected value
  74. *
  75. * @return void
  76. */
  77. public function testGetMimeType()
  78. {
  79. $validator = new File\ExcludeMimeType('image/gif');
  80. $this->assertEquals('image/gif', $validator->getMimeType());
  81. $validator = new File\ExcludeMimeType(array('image/gif', 'video', 'text/test'));
  82. $this->assertEquals('image/gif,video,text/test', $validator->getMimeType());
  83. $validator = new File\ExcludeMimeType(array('image/gif', 'video', 'text/test'));
  84. $this->assertEquals(array('image/gif', 'video', 'text/test'), $validator->getMimeType(true));
  85. }
  86. /**
  87. * Ensures that setMimeType() returns expected value
  88. *
  89. * @return void
  90. */
  91. public function testSetMimeType()
  92. {
  93. $validator = new File\ExcludeMimeType('image/gif');
  94. $validator->setMimeType('image/jpeg');
  95. $this->assertEquals('image/jpeg', $validator->getMimeType());
  96. $this->assertEquals(array('image/jpeg'), $validator->getMimeType(true));
  97. $validator->setMimeType('image/gif, text/test');
  98. $this->assertEquals('image/gif,text/test', $validator->getMimeType());
  99. $this->assertEquals(array('image/gif', 'text/test'), $validator->getMimeType(true));
  100. $validator->setMimeType(array('video/mpeg', 'gif'));
  101. $this->assertEquals('video/mpeg,gif', $validator->getMimeType());
  102. $this->assertEquals(array('video/mpeg', 'gif'), $validator->getMimeType(true));
  103. }
  104. /**
  105. * Ensures that addMimeType() returns expected value
  106. *
  107. * @return void
  108. */
  109. public function testAddMimeType()
  110. {
  111. $validator = new File\ExcludeMimeType('image/gif');
  112. $validator->addMimeType('text');
  113. $this->assertEquals('image/gif,text', $validator->getMimeType());
  114. $this->assertEquals(array('image/gif', 'text'), $validator->getMimeType(true));
  115. $validator->addMimeType('jpg, to');
  116. $this->assertEquals('image/gif,text,jpg,to', $validator->getMimeType());
  117. $this->assertEquals(array('image/gif', 'text', 'jpg', 'to'), $validator->getMimeType(true));
  118. $validator->addMimeType(array('zip', 'ti'));
  119. $this->assertEquals('image/gif,text,jpg,to,zip,ti', $validator->getMimeType());
  120. $this->assertEquals(array('image/gif', 'text', 'jpg', 'to', 'zip', 'ti'), $validator->getMimeType(true));
  121. $validator->addMimeType('');
  122. $this->assertEquals('image/gif,text,jpg,to,zip,ti', $validator->getMimeType());
  123. $this->assertEquals(array('image/gif', 'text', 'jpg', 'to', 'zip', 'ti'), $validator->getMimeType(true));
  124. }
  125. }