/**
  * Pack files, minify contents and save result into a file.
  * @param array $files
  * @param sting $type "js" or "css"
  * @param string $name
  * @return string The web path of the created compressed file
  */
 protected function compress(array $files, $type, $name)
 {
     if (empty($files)) {
         return;
     }
     // Abslotute files path
     $sources = array();
     foreach ($files as $file) {
         $sources[] = $this->getAbsoluteDir($file, $type);
     }
     // merge files
     $packer = new sfAssetsManagerPacker();
     $packed = $packer->execute($sources);
     // minify file
     if ($type == 'js') {
         $minifier = new sfAssetsManagerJSMinifier();
     } elseif ($type == 'css') {
         $cdnImg = sfConfig::get('app_sf_assets_manager_plugin_cdn_img', '');
         $strCss = str_replace("url('/", "url('" . $cdnImg . '/', file_get_contents($packed));
         file_put_contents($packed, $strCss);
         $minifier = new sfAssetsManagerCSSMinifier();
     }
     $minified = $minifier->execute($packed);
     $outputUri = $this->getFileUri($name, $type);
     $outputPath = sfConfig::get('sf_web_dir') . $outputUri;
     // create file
     rename($minified, $outputPath);
     return $outputUri;
 }
<?php

require dirname(__FILE__) . '/../bootstrap/unit.php';
require dirname(__FILE__) . '/../../lib/compressor/sfAssetsManagerCSSMinifier.class.php';
$fileDir = dirname(__FILE__) . '/../fixtures/css';
$minifier = new sfAssetsManagerCSSMinifier();
$file = $minifier->execute($fileDir . '/expanded.css');
$t = new lime_test(2, new lime_output_color());
$t->ok(file_exists($file), '->execute() returns a file path');
$t->is(file_get_contents($file), "html{margin:0;padding:0}#content{color:#000}", '->execute() compresses the js file content');