diff --git a/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php b/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php index 59756903482ad90c0a4036cbff6e4a6e016f92b6..f013f1e2c0eefe932ebf7c6c0ab0617eeeac129c 100644 --- a/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php +++ b/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php @@ -89,7 +89,8 @@ class VimeoRenderer implements FileRendererInterface */ public function render(FileInterface $file, $width, $height, array $options = null, $usedPathsRelativeToCurrentScript = false) { - if ($file instanceof FileReference) { + // Check for an autoplay option at the file reference itself, if not overriden yet. + if (!isset($options['autoplay']) && $file instanceof FileReference) { $autoplay = $file->getProperty('autoplay'); if ($autoplay !== null) { $options['autoplay'] = $autoplay; diff --git a/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php b/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php index 0282ab0f54b3783af734892817c0119bcf465ce0..a4dfb1eb00bdb3568a09e8dc561a49482091ba66 100644 --- a/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php +++ b/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php @@ -89,7 +89,8 @@ class YouTubeRenderer implements FileRendererInterface */ public function render(FileInterface $file, $width, $height, array $options = null, $usedPathsRelativeToCurrentScript = false) { - if ($file instanceof FileReference) { + // Check for an autoplay option at the file reference itself, if not overriden yet. + if (!isset($options['autoplay']) && $file instanceof FileReference) { $autoplay = $file->getProperty('autoplay'); if ($autoplay !== null) { $options['autoplay'] = $autoplay; diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php index 350f6ea5575fec7fe3af3aa1c9072aca148ffdd6..88210241a2848328221a11b60b7ece319ca0d509 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php @@ -15,6 +15,7 @@ namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; */ use TYPO3\CMS\Core\Resource\File; +use TYPO3\CMS\Core\Resource\FileReference; use TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\VimeoHelper; use TYPO3\CMS\Core\Resource\Rendering\VimeoRenderer; use TYPO3\CMS\Core\Tests\UnitTestCase; @@ -123,6 +124,25 @@ class VimeoRendererTest extends UnitTestCase ); } + /** + * @test + */ + public function renderOutputWithAutoplayFromReferenceIsCorrect() + { + /** @var File|\PHPUnit_Framework_MockObject_MockObject $fileResourceMock */ + $fileResourceMock = $this->getMock(File::class, array(), array(), '', false); + + /** @var FileReference|\PHPUnit_Framework_MockObject_MockObject $fileResourceMock */ + $fileReferenceMock = $this->getMock(FileReference::class, array(), array(), '', false); + $fileReferenceMock->expects($this->any())->method('getProperty')->will($this->returnValue(1)); + $fileReferenceMock->expects($this->any())->method('getOriginalFile')->willReturn($fileResourceMock); + + $this->assertSame( + '<iframe src="//player.vimeo.com/video/7331?autoplay=1&title=0&byline=0&portrait=0" allowfullscreen width="300" height="200"></iframe>', + $this->subject->render($fileReferenceMock, '300m', '200') + ); + } + /** * @test */ diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php index 40895d786cbb470aef5f8524230ce74ccc621e4f..78fe780b30cf08afc9cadb03d7e64f0aa5506efc 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php @@ -15,6 +15,7 @@ namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; */ use TYPO3\CMS\Core\Resource\File; +use TYPO3\CMS\Core\Resource\FileReference; use TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\YouTubeHelper; use TYPO3\CMS\Core\Resource\Rendering\YouTubeRenderer; use TYPO3\CMS\Core\Tests\UnitTestCase; @@ -126,6 +127,26 @@ class YouTubeRendererTest extends UnitTestCase ); } + /** + * @test + */ + public function renderOutputWithAutoplayFromFileReferenceIsCorrect() + { + /** @var File|\PHPUnit_Framework_MockObject_MockObject $fileResourceMock */ + $fileResourceMock = $this->getMock(File::class, array(), array(), '', false); + + /** @var FileReference|\PHPUnit_Framework_MockObject_MockObject $fileResourceMock */ + $fileReferenceMock = $this->getMock(FileReference::class, array(), array(), '', false); + $fileReferenceMock->expects($this->any())->method('getProperty')->will($this->returnValue(1)); + $fileReferenceMock->expects($this->any())->method('getOriginalFile')->willReturn($fileResourceMock); + + + $this->assertSame( + '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&autoplay=1&enablejsapi=1&origin=test.server.org&showinfo=0" allowfullscreen width="300" height="200"></iframe>', + $this->subject->render($fileReferenceMock, '300m', '200') + ); + } + /** * @test */