extractAssetsFromContent = Bootstrap::getObjectManager() ->get(ExtractAssetsFromContentInterface::class); } /** * Assing assets to content, retrieve the data, then unassign assets from content * * @magentoDataFixture Magento/MediaGallery/_files/media_asset.php * * @dataProvider contentProvider * @param string $content * @param array $assetIds */ public function testExecute(string $content, array $assetIds): void { $assets = $this->extractAssetsFromContent->execute($content); $extractedAssetIds = []; foreach ($assets as $asset) { $extractedAssetIds[] = $asset->getId(); } sort($assetIds); sort($extractedAssetIds); $this->assertEquals($assetIds, $extractedAssetIds); } /** * Data provider for testExecute * * @return array */ public function contentProvider() { return [ 'Empty Content' => [ '', [] ], 'No paths in content' => [ 'content without paths', [] ], 'Relevant paths in content' => [ 'content {{media url="testDirectory/path.jpg"}} content', [ 2020 ] ], 'Relevant wysiwyg paths in content' => [ 'content [ '/pub/media/testDirectory/path.jpg', [ 2020 ] ], 'Relevant path content' => [ '/media/testDirectory/path.jpg', [ 2020 ] ], 'Irrelevant paths in content' => [ 'content {{media url="media/non-existing-path.png"}} content', [] ], ]; } }