public function testGetCollection() { $m = new Manager(); $m->define('test', function () { }); $this->assertInstanceOf('SimpleAsset\\Collection', $m->getCollection('test')); try { $m->getCollection('foo'); $this->fail('Should have throw an invalid argument exception trying to access a non-existing collection'); } catch (InvalidArgumentException $e) { } }
/** * @param null $collection * @param callable $definition * @return SimpleAsset\Manager|SimpleAsset\Collection */ function AssetManager($collection = null, Closure $definition = null) { static $instance; if (!$instance instanceof Manager) { $instance = new Manager(); } if ($collection) { if ($definition) { $instance->define($collection, $definition); } else { return $instance->getCollection($collection); } } return $instance; }
public function testImport() { $manager = new Manager(); $manager->define('test', function () { $this->import('default', 'embedded'); $this->style('/foo.css'); }); $manager->define('default', function () { $this->style('/default.css'); $this->script('/default.js'); }); $manager->define('embedded', function () { $this->embeddedScript('var default = true;'); $this->embeddedStyle('default { }'); }); $assets = $manager->getCollection('test')->getAssets(); $this->assertEquals(2, count($assets['style'])); $this->assertEquals(1, count($assets['script'])); $this->assertEquals(1, count($assets['embeddedStyle'])); $this->assertEquals(1, count($assets['embeddedScript'])); $expectedAssets = ['style' => ['/default.css', '/foo.css'], 'script' => ['/default.js'], 'embeddedStyle' => ['default { }'], 'embeddedScript' => ['var default = true;']]; foreach ($expectedAssets as $type => $typeAssets) { for ($c = 0; $c < count($assets); $c++) { $actualAsset = $assets[$type][$c]; switch (get_class($actualAsset)) { case 'SimpleAsset\\Style': case 'SimpleAsset\\Script': $this->assertEquals($typeAssets[$c], $actualAsset->getSrc()); break; case 'SimpleAsset\\EmbeddedScript': $this->assertEquals($typeAssets[$c], $actualAsset->getScript()); break; case 'SimpleAsset\\EmbeddedStyle': $this->assertEquals($typeAssets[$c], $actualAsset->getStyle()); break; } } } }