17 use Prophecy\Argument;
18 use Psr\Http\Message\ServerRequestInterface;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
60 protected function setUp()
62 $this->fileResourceMock = $this->getMockBuilder(\
TYPO3\CMS\Core\Resource\File::class)
63 ->setMethods([
'toArray',
'getModificationTime',
'getExtension'])
64 ->disableOriginalConstructor()
66 $this->folderResourceMock = $this->getMockBuilder(\
TYPO3\CMS\Core\Resource\Folder::class)
67 ->setMethods([
'getIdentifier'])
68 ->disableOriginalConstructor()
70 $this->mockFileProcessor = $this->getMockBuilder(\
TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::class)
71 ->setMethods([
'getErrorMessages'])
72 ->disableOriginalConstructor()
75 $this->fileResourceMock->expects($this->any())->method(
'toArray')->will($this->returnValue([
'id' =>
'foo']));
76 $this->fileResourceMock->expects($this->any())->method(
'getModificationTime')->will($this->returnValue(123456789));
77 $this->fileResourceMock->expects($this->any())->method(
'getExtension')->will($this->returnValue(
'html'));
79 $serverRequest = $this->prophesize(ServerRequestInterface::class);
80 $GLOBALS[
'TYPO3_REQUEST'] = $serverRequest->reveal();
91 $subject = $this->getAccessibleMock(FileController::class, [
'dummy']);
92 $this->assertTrue($subject->_call(
'flattenResultDataValue',
true));
93 $this->assertSame([], $subject->_call(
'flattenResultDataValue', []));
101 $subject = $this->getAccessibleMock(FileController::class, [
'dummy']);
103 $iconFactoryProphecy = $this->prophesize(IconFactory::class);
104 GeneralUtility::addInstance(IconFactory::class, $iconFactoryProphecy->reveal());
105 $iconProphecy = $this->prophesize(Icon::class);
106 $iconProphecy->render()->shouldBeCalled()->willReturn(
'');
107 $iconFactoryProphecy->getIconForFileExtension(Argument::cetera())->willReturn($iconProphecy->reveal());
109 $result = $subject->_call(
'flattenResultDataValue', $this->fileResourceMock);
113 'date' =>
'29-11-73',
126 $subject = $this->getAccessibleMock(FileController::class, [
'init',
'main']);
128 $fileData = [
'delete' => [
true]];
129 $subject->_set(
'fileProcessor', $this->mockFileProcessor);
130 $subject->_set(
'fileData', $fileData);
131 $subject->_set(
'redirect',
false);
133 $subject->expects($this->once())->method(
'main');
135 $subject->processAjaxRequest($this->request, $this->response);
143 $subject = $this->getAccessibleMock(FileController::class, [
'init',
'main']);
145 $fileData = [
'editfile' => [
true]];
146 $subject->_set(
'fileProcessor', $this->mockFileProcessor);
147 $subject->_set(
'fileData', $fileData);
148 $subject->_set(
'redirect',
false);
150 $subject->expects($this->once())->method(
'main');
152 $subject->processAjaxRequest($this->request, $this->response);
160 $subject = $this->getAccessibleMock(FileController::class, [
'init',
'main']);
162 $fileData = [
'editfile' => [
true]];
163 $subject->_set(
'fileProcessor', $this->mockFileProcessor);
164 $subject->_set(
'fileData', $fileData);
165 $subject->_set(
'redirect',
false);
167 $result = $subject->processAjaxRequest($this->request, $this->response);
168 $this->assertEquals(200, $result->getStatusCode());
176 $subject = $this->getAccessibleMock(FileController::class, [
'init',
'main']);
177 $this->mockFileProcessor->expects($this->any())->method(
'getErrorMessages')->will($this->returnValue([
'error occured']));
178 $subject->_set(
'fileProcessor', $this->mockFileProcessor);
179 $result = $subject->processAjaxRequest($this->request, $this->response);
180 $this->assertEquals(500, $result->getStatusCode());