/**
  * Tests optimizing a CSS asset group.
  *
  * @test
  * @dataProvider compressCssFileContentDataProvider
  * @param string $cssFile
  * @param string $expected
  */
 public function compressCssFileContent($cssFile, $expected)
 {
     $cssContent = file_get_contents($cssFile);
     $compressedCss = $this->subject->_call('compressCssString', $cssContent);
     // we have to fix relative paths, if we aren't working on a file in our target directory
     $relativeFilename = str_replace(PATH_site, '', $cssFile);
     if (strpos($relativeFilename, $this->subject->_get('targetDirectory')) === false) {
         $compressedCss = $this->subject->_call('cssFixRelativeUrlPaths', $compressedCss, dirname($relativeFilename) . '/');
     }
     $this->assertEquals(file_get_contents($expected), $compressedCss, 'Group of file CSS assets optimized correctly.');
 }
 /**
  * @test
  */
 public function concatenatedJsFileIsFlaggedToNotConcatenateAgain()
 {
     $fileName = 'fooFile.js';
     $concatenatedFileName = 'merged_' . $fileName;
     $testFileFixture = array($fileName => array('file' => $fileName, 'excludeFromConcatenation' => FALSE, 'section' => 'top'));
     $this->subject->expects($this->once())->method('createMergedJsFile')->will($this->returnValue($concatenatedFileName));
     $this->subject->setRelativePath('');
     $result = $this->subject->concatenateJsFiles($testFileFixture);
     $this->assertArrayHasKey($concatenatedFileName, $result);
     $this->assertArrayHasKey('excludeFromConcatenation', $result[$concatenatedFileName]);
     $this->assertTrue($result[$concatenatedFileName]['excludeFromConcatenation']);
 }
 /**
  * @test
  * @dataProvider calcStatementsDataProvider
  */
 public function calcFunctionMustRetainWhitespaces($input, $expected)
 {
     $result = $this->subject->_call('compressCssString', $input);
     $this->assertSame($expected, trim($result));
 }