vendor/bundles/Symfony/Bundle/AsseticBundle/Tests/Command/DumpCommandTest.php
author ymh <ymh.work@gmail.com>
Sat, 24 Sep 2011 15:40:41 +0200
changeset 0 7f95f8617b0b
permissions -rwxr-xr-x
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
/*
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * This file is part of the Symfony framework.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * (c) Fabien Potencier <fabien@symfony.com>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * This source file is subject to the MIT license that is bundled
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * with this source code in the file LICENSE.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
namespace Symfony\Bundle\AsseticBundle\Tests\Command;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
use Symfony\Bundle\AsseticBundle\Command\DumpCommand;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
use Symfony\Component\Console\Input\ArrayInput;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
use Symfony\Component\Console\Input\InputOption;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
use Symfony\Component\Console\Output\NullOutput;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
class DumpCommandTest extends \PHPUnit_Framework_TestCase
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
{
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    private $writeTo;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    private $application;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    private $definition;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    private $kernel;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    private $container;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    private $am;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    protected function setUp()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        if (!class_exists('Assetic\\AssetManager')) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            $this->markTestSkipped('Assetic is not available.');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        $this->writeTo = sys_get_temp_dir().'/assetic_dump';
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        $this->application = $this->getMockBuilder('Symfony\\Bundle\\FrameworkBundle\\Console\\Application')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
            ->disableOriginalConstructor()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            ->getMock();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        $this->definition = $this->getMockBuilder('Symfony\\Component\\Console\\Input\\InputDefinition')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
            ->disableOriginalConstructor()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            ->getMock();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        $this->kernel = $this->getMock('Symfony\\Component\\HttpKernel\\KernelInterface');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        $this->helperSet = $this->getMock('Symfony\\Component\\Console\\Helper\\HelperSet');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        $this->container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        $this->am = $this->getMockBuilder('Assetic\\Factory\\LazyAssetManager')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
            ->disableOriginalConstructor()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            ->getMock();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
        $this->application->expects($this->any())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
            ->method('getDefinition')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            ->will($this->returnValue($this->definition));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        $this->definition->expects($this->any())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            ->method('getArguments')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            ->will($this->returnValue(array()));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        $this->definition->expects($this->any())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
            ->method('getOptions')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
            ->will($this->returnValue(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
                new InputOption('--verbose', '-v', InputOption::VALUE_NONE, 'Increase verbosity of messages.'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
                new InputOption('--env', '-e', InputOption::VALUE_REQUIRED, 'The Environment name.', 'dev'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
                new InputOption('--no-debug', null, InputOption::VALUE_NONE, 'Switches off debug mode.'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
            )));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        $this->application->expects($this->any())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            ->method('getKernel')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            ->will($this->returnValue($this->kernel));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        $this->application->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            ->method('getHelperSet')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
            ->will($this->returnValue($this->helperSet));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
        $this->kernel->expects($this->any())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            ->method('getContainer')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            ->will($this->returnValue($this->container));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
        $this->container->expects($this->any())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
            ->method('getParameter')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
            ->with('assetic.write_to')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            ->will($this->returnValue($this->writeTo));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
        $this->container->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
            ->method('get')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
            ->with('assetic.asset_manager')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
            ->will($this->returnValue($this->am));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
        $this->command = new DumpCommand();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
        $this->command->setApplication($this->application);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    protected function tearDown()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
        if (is_dir($this->writeTo)) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
            array_map('unlink', glob($this->writeTo.'/*'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
            rmdir($this->writeTo);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    public function testEmptyAssetManager()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
            ->method('getNames')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            ->will($this->returnValue(array()));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
        $this->command->run(new ArrayInput(array()), new NullOutput());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
    public function testDumpOne()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
        $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
            ->method('getNames')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
            ->will($this->returnValue(array('test_asset')));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
            ->method('get')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
            ->with('test_asset')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
            ->will($this->returnValue($asset));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
            ->method('getFormula')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
            ->with('test_asset')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
            ->will($this->returnValue(array()));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
            ->method('isDebug')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
            ->will($this->returnValue(false));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
        $asset->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
            ->method('getTargetPath')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
            ->will($this->returnValue('test_asset.css'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
        $asset->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
            ->method('dump')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
            ->will($this->returnValue('/* test_asset */'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
        $this->command->run(new ArrayInput(array()), new NullOutput());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        $this->assertFileExists($this->writeTo.'/test_asset.css');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
        $this->assertEquals('/* test_asset */', file_get_contents($this->writeTo.'/test_asset.css'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
    public function testDumpDebug()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
        $asset = $this->getMock('Assetic\\Asset\\AssetCollection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
        $leaf = $this->getMock('Assetic\\Asset\\AssetInterface');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
            ->method('getNames')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            ->will($this->returnValue(array('test_asset')));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
            ->method('get')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
            ->with('test_asset')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
            ->will($this->returnValue($asset));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
            ->method('getFormula')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
            ->with('test_asset')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
            ->will($this->returnValue(array()));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
        $this->am->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
            ->method('isDebug')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
            ->will($this->returnValue(true));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
        $asset->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
            ->method('getTargetPath')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
            ->will($this->returnValue('test_asset.css'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
        $asset->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
            ->method('dump')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
            ->will($this->returnValue('/* test_asset */'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
        $asset->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
            ->method('getIterator')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
            ->will($this->returnValue(new \ArrayIterator(array($leaf))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
        $leaf->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
            ->method('getTargetPath')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
            ->will($this->returnValue('test_leaf.css'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
        $leaf->expects($this->once())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
            ->method('dump')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
            ->will($this->returnValue('/* test_leaf */'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
        $this->command->run(new ArrayInput(array()), new NullOutput());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
        $this->assertFileExists($this->writeTo.'/test_asset.css');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
        $this->assertFileExists($this->writeTo.'/test_leaf.css');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
        $this->assertEquals('/* test_asset */', file_get_contents($this->writeTo.'/test_asset.css'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
        $this->assertEquals('/* test_leaf */', file_get_contents($this->writeTo.'/test_leaf.css'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
}