get('nelmio_api_doc.render_docs.html.asset'); /** @var TwigFunction */ $twigFunction = $getNelmioAsset->getFunctions()[0]; self::assertSame($expectedContent, $twigFunction->getCallable()->__invoke($mode, $asset)); } public function provideAsset() { $cdnDir = 'https://cdn.jsdelivr.net/gh/nelmio/NelmioApiDocBundle/Resources/public'; $resourceDir = __DIR__.'/../../../Resources/public'; return $this->provideCss($cdnDir, $resourceDir) + $this->provideJs($cdnDir, $resourceDir) + $this->provideImage($cdnDir); } private function provideCss($cdnDir, $resourceDir) { return [ 'bundled css' => [ AssetsMode::BUNDLE, 'style.css', '', ], 'cdn css' => [ AssetsMode::CDN, 'style.css', '', ], 'offline css' => [ AssetsMode::OFFLINE, 'style.css', '', ], 'external css' => [ AssetsMode::BUNDLE, 'https://cdn.com/my.css', '', ], ]; } private function provideJs($cdnDir, $resourceDir) { return [ 'bundled js' => [ AssetsMode::BUNDLE, 'init-swagger-ui.js', '', ], 'cdn js' => [ AssetsMode::CDN, 'init-swagger-ui.js', '', ], 'offline js' => [ AssetsMode::OFFLINE, 'init-swagger-ui.js', '', ], 'external js' => [ AssetsMode::BUNDLE, 'https://cdn.com/my.js', '', ], ]; } private function provideImage($cdnDir) { return [ 'bundled image' => [ AssetsMode::BUNDLE, 'logo.png', '/bundles/nelmioapidoc/logo.png', ], 'cdn image' => [ AssetsMode::CDN, 'logo.png', $cdnDir.'/logo.png', ], 'offline image fallbacks to cdn' => [ AssetsMode::OFFLINE, 'logo.png', $cdnDir.'/logo.png', ], ]; } }