CreatePdfFileTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. *
  6. */
  7. declare(strict_types=1);
  8. namespace Magento\Framework\App\Filesystem;
  9. use Magento\Framework\App\Filesystem\DirectoryList;
  10. use Magento\Framework\App\Response\Http\FileFactory;
  11. use Magento\Framework\Filesystem;
  12. use Magento\TestFramework\Helper\Bootstrap;
  13. use Zend\Http\Header\ContentType;
  14. /**
  15. * Class CreatePdfFileTest
  16. *
  17. * Integration test for testing a file creation from string
  18. */
  19. class CreatePdfFileTest extends \PHPUnit\Framework\TestCase
  20. {
  21. /**
  22. * @throws \Exception
  23. */
  24. public function testGenerateFileFromString()
  25. {
  26. $objectManager = Bootstrap::getObjectManager();
  27. /** @var FileFactory $fileFactory */
  28. $fileFactory = $objectManager->get(FileFactory::class);
  29. /** @var Filesystem $filesystem */
  30. $filesystem = $objectManager->get(Filesystem::class);
  31. $filename = 'test.pdf';
  32. $contentType = 'application/pdf';
  33. $fileContent = ['type' => 'string', 'value' => ''];
  34. $response = $fileFactory->create($filename, $fileContent, DirectoryList::VAR_DIR, $contentType);
  35. /** @var ContentType $contentTypeHeader */
  36. $contentTypeHeader = $response->getHeader('Content-type');
  37. /* Check the system returns the correct type */
  38. self::assertEquals("Content-Type: $contentType", $contentTypeHeader->toString());
  39. $varDirectory = $filesystem->getDirectoryRead(DirectoryList::VAR_DIR);
  40. $varDirectory->isFile($filename);
  41. /* Check the file is generated */
  42. self::assertTrue($varDirectory->isFile($filename));
  43. /* Check the file is removed after generation if the corresponding option is set */
  44. $fileContent = ['type' => 'string', 'value' => '', 'rm' => true];
  45. $fileFactory->create($filename, $fileContent, DirectoryList::VAR_DIR, $contentType);
  46. self::assertFalse($varDirectory->isFile($filename));
  47. }
  48. }