@@ -38,46 +38,6 @@ protected function setUp () : void
3838 }
3939
4040
41- protected function buildGenerator (bool $ isDebug )
42- {
43- $ registry = $ this ->getMockBuilder (AssetsRegistry::class)
44- ->disableOriginalConstructor ()
45- ->getMock ();
46-
47- $ assetUrl = $ this ->getMockBuilder (AssetUrl::class)
48- ->disableOriginalConstructor ()
49- ->getMock ();
50-
51- $ importRewriter = $ this ->getMockBuilder (CssImportRewriter::class)
52- ->disableOriginalConstructor ()
53- ->getMock ();
54-
55- $ importRewriter
56- ->method ("rewriteRelativeImports " )
57- ->willReturnArgument (1 );
58-
59- $ fileTypeRegistry = new FileTypeRegistry (new GenericFile (), new ServiceLocator ([
60- "js " => function () { return new JavaScriptFile (); },
61- "css " => function () use ($ importRewriter ) { return new CssFile ($ importRewriter ); },
62- ]));
63-
64- $ dependencyMapFactory = $ this ->getMockBuilder (DependencyMapFactory::class)
65- ->disableOriginalConstructor ()
66- ->getMock ();
67-
68- $ dependencyMapFactory
69- ->method ("getDependencyMap " )
70- ->willReturn (new DependencyMap ());
71-
72- $ assetUrl
73- ->method ("generateUrl " )
74- ->willReturnCallback (function (Asset $ asset ) { return $ asset ->getAssetPath (); });
75-
76- $ generator = new AssetHtmlGenerator ($ registry , $ assetUrl , $ fileTypeRegistry , $ isDebug , $ dependencyMapFactory );
77- return [$ generator , $ registry , $ assetUrl , $ fileTypeRegistry ];
78- }
79-
80-
8141 public function testDebugJS () : void
8242 {
8343 /**
@@ -314,4 +274,62 @@ public function testHttpImports (array $assets, string $expectedOutput) : void
314274 $ html = $ generator ->linkAssets ($ assets );
315275 self ::assertSame ($ expectedOutput , $ html );
316276 }
277+
278+
279+ /**
280+ *
281+ */
282+ public function testAllowCors () : void
283+ {
284+ /**
285+ * @var AssetHtmlGenerator
286+ * @var \PHPUnit_Framework_MockObject_MockObject $registry
287+ */
288+ [$ generator ] = $ this ->buildGenerator (false , true );
289+
290+ self ::assertSame (
291+ '<script crossorigin="anonymous" defer src="http://example.org/test.js"></script> ' ,
292+ $ generator ->linkAssets (["http://example.org/test.js " ])
293+ );
294+ }
295+
296+
297+ protected function buildGenerator (bool $ isDebug , bool $ allowCors = false )
298+ {
299+ $ registry = $ this ->getMockBuilder (AssetsRegistry::class)
300+ ->disableOriginalConstructor ()
301+ ->getMock ();
302+
303+ $ assetUrl = $ this ->getMockBuilder (AssetUrl::class)
304+ ->disableOriginalConstructor ()
305+ ->getMock ();
306+
307+ $ importRewriter = $ this ->getMockBuilder (CssImportRewriter::class)
308+ ->disableOriginalConstructor ()
309+ ->getMock ();
310+
311+ $ importRewriter
312+ ->method ("rewriteRelativeImports " )
313+ ->willReturnArgument (1 );
314+
315+ $ fileTypeRegistry = new FileTypeRegistry (new GenericFile (), new ServiceLocator ([
316+ "js " => function () { return new JavaScriptFile (); },
317+ "css " => function () use ($ importRewriter ) { return new CssFile ($ importRewriter ); },
318+ ]));
319+
320+ $ dependencyMapFactory = $ this ->getMockBuilder (DependencyMapFactory::class)
321+ ->disableOriginalConstructor ()
322+ ->getMock ();
323+
324+ $ dependencyMapFactory
325+ ->method ("getDependencyMap " )
326+ ->willReturn (new DependencyMap ());
327+
328+ $ assetUrl
329+ ->method ("generateUrl " )
330+ ->willReturnCallback (function (Asset $ asset ) { return $ asset ->getAssetPath (); });
331+
332+ $ generator = new AssetHtmlGenerator ($ registry , $ assetUrl , $ fileTypeRegistry , $ isDebug , $ dependencyMapFactory , $ allowCors );
333+ return [$ generator , $ registry , $ assetUrl , $ fileTypeRegistry ];
334+ }
317335}
0 commit comments