![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/File/Test/Unit/Transfer/Adapter/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\File\Test\Unit\Transfer\Adapter; use Laminas\Http\Headers; use Magento\Framework\App\Request\Http as RequestHttp; use Magento\Framework\File\Mime; use Magento\Framework\File\Transfer\Adapter\Http; use Magento\Framework\HTTP\PhpEnvironment\Response; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * Tests http transfer adapter. */ class HttpTest extends TestCase { /** * @var RequestHttp|MockObject */ private $request; /** * @var Response|MockObject */ private $response; /** * @var Http|MockObject */ private $object; /** * @var Mime|MockObject */ private $mime; /** * @inheritdoc */ protected function setUp(): void { $this->response = $this->createPartialMock( Response::class, ['setHeader', 'sendHeaders', 'setHeaders'] ); $this->mime = $this->createMock(Mime::class); $this->request = $this->createPartialMock( RequestHttp::class, ['isHead'] ); $this->object = new Http($this->response, $this->mime, $this->request); } /** * @return void */ public function testSend(): void { $file = __DIR__ . '/../../_files/javascript.js'; $contentType = 'content/type'; $this->response ->method('setHeader') ->withConsecutive( ['Content-length', filesize($file)], ['Content-Type', $contentType] ); $this->response->expects($this->once()) ->method('sendHeaders'); $this->mime->expects($this->once()) ->method('getMimeType') ->with($file) ->willReturn($contentType); $this->request->expects($this->once()) ->method('isHead') ->willReturn(false); $this->expectOutputString(file_get_contents($file)); $this->object->send($file); } /** * @return void */ public function testSendWithOptions(): void { $file = __DIR__ . '/../../_files/javascript.js'; $contentType = 'content/type'; $headers = $this->getMockBuilder(Headers::class) ->getMock(); $this->response->expects($this->atLeastOnce()) ->method('setHeader') ->withConsecutive(['Content-length', filesize($file)], ['Content-Type', $contentType]); $this->response->expects($this->atLeastOnce()) ->method('setHeaders') ->with($headers); $this->response->expects($this->once()) ->method('sendHeaders'); $this->mime->expects($this->once()) ->method('getMimeType') ->with($file) ->willReturn($contentType); $this->request->expects($this->once()) ->method('isHead') ->willReturn(false); $this->expectOutputString(file_get_contents($file)); $this->object->send(['filepath' => $file, 'headers' => $headers]); } /** * @return void */ public function testSendNoFileSpecifiedException(): void { $this->expectException('InvalidArgumentException'); $this->expectExceptionMessage('Filename is not set'); $this->object->send([]); } /** * @return void */ public function testSendNoFileExistException(): void { $this->expectException('InvalidArgumentException'); $this->expectExceptionMessage('File \'nonexistent.file\' does not exists'); $this->object->send('nonexistent.file'); } /** * @return void */ public function testSendHeadRequest(): void { $file = __DIR__ . '/../../_files/javascript.js'; $contentType = 'content/type'; $this->response ->method('setHeader') ->withConsecutive(['Content-length', filesize($file)], ['Content-Type', $contentType]); $this->response->expects($this->once()) ->method('sendHeaders'); $this->mime->expects($this->once()) ->method('getMimeType') ->with($file) ->willReturn($contentType); $this->request->expects($this->once()) ->method('isHead') ->willReturn(true); $this->object->send($file); $this->assertFalse($this->hasOutput()); } }