예제 #1
0
 public function testGetSkinFile()
 {
     $expected = '%s/frontend/package/custom_theme/skin/theme_nested_skin/Fixture_Module/fixture_script.js';
     $params = array('package' => 'package', 'theme' => 'custom_theme', 'skin' => 'theme_nested_skin');
     $actual = $this->_model->getSkinFile('Fixture_Module::fixture_script.js', $params);
     $this->_testExpectedVersusActualFilename($expected, $actual);
 }
예제 #2
0
 public function testGetSkinFile()
 {
     $params = array('area' => 'some_area', 'package' => 'some_package', 'theme' => 'some_theme', 'skin' => 'some_skin', 'locale' => 'some_locale');
     $file = 'Some_Module::some_file.ext';
     $expectedParams = $params + array('module' => 'Some_Module');
     $expected = 'path/to/some_file.ext';
     $this->_model->expects($this->once())->method('_getFallback')->with($expectedParams)->will($this->returnValue($this->_fallback));
     $this->_fallback->expects($this->once())->method('getSkinFile')->with('some_file.ext', 'Some_Module')->will($this->returnValue($expected));
     $actual = $this->_model->getSkinFile($file, $params);
     $this->assertEquals($expected, $actual);
 }
예제 #3
0
 /**
  * Materialization of skin files in development mode
  *
  * @param string $application
  * @param string $package
  * @param string $theme
  * @param string $skin
  * @param string $file
  * @dataProvider materializeSkinFileDataProvider
  */
 public function testMaterializeSkinFile($application, $package, $theme, $skin, $file)
 {
     // determine path where a materialized file is to be expected
     $expectedModule = false;
     $targetFile = $file;
     if (false !== strpos($file, '::')) {
         $targetFile = explode('::', $file);
         $expectedModule = $targetFile[0];
         $targetFile = $targetFile[1];
     }
     $path = array(Mage::getBaseDir('media'), 'skin', $application, $package, $theme, $skin, 'en_US');
     if ($expectedModule) {
         $path[] = $expectedModule;
     }
     $path[] = $targetFile;
     $targetFile = implode(DIRECTORY_SEPARATOR, $path);
     // test doesn't make sense if the original file doesn't exist or the target file already exists
     $params = array('_area' => $application, '_package' => $package, '_theme' => $theme, '_skin' => $skin);
     $originalFile = $this->_model->getSkinFile($file, $params);
     $this->assertFileExists($originalFile);
     // getSkinUrl() will trigger materialization in development mode
     $this->assertFileNotExists($targetFile, 'Please verify isolation from previous test(s).');
     $this->_model->getSkinUrl($file, $params);
     $this->assertFileExists($targetFile);
     // as soon as the files are materialized, they must have the same mtime as originals
     $this->assertEquals(filemtime($originalFile), filemtime($targetFile), "These files mtime must be equal: {$originalFile} / {$targetFile}");
 }
예제 #4
0
 /**
  * Publication of skin files in development mode
  *
  * @param string $application
  * @param string $package
  * @param string $theme
  * @param string $skin
  * @param string $file
  * @param string $expectedFile
  * @dataProvider publishSkinFileDataProvider
  */
 public function testPublishSkinFile($file, $designParams, $expectedFile)
 {
     $expectedFile = self::$_skinPublicDir . '/' . $expectedFile;
     // test doesn't make sense if the original file doesn't exist or the target file already exists
     $originalFile = $this->_model->getSkinFile($file, $designParams);
     $this->assertFileExists($originalFile);
     // getSkinUrl() will trigger publication in development mode
     $this->assertFileNotExists($expectedFile, 'Please verify isolation from previous test(s).');
     $this->_model->getSkinUrl($file, $designParams);
     $this->assertFileExists($expectedFile);
     // as soon as the files are published, they must have the same mtime as originals
     $this->assertEquals(filemtime($originalFile), filemtime($expectedFile), "These files mtime must be equal: {$originalFile} / {$expectedFile}");
 }