Example #1
0
 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) {
     }
 }
Example #2
0
/**
 * @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;
}
Example #3
0
 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;
             }
         }
     }
 }