We will work on Apr 26th (Saturday) and will be off from Apr 30th (Wednesday) until May 2nd (Friday) for public holiday in our country

Package.php 2.38 KB
Newer Older
1 2 3 4
<?php

class EcomDev_PHPUnit_Model_Design_Package
    extends Mage_Core_Model_Design_Package
5 6 7
    implements EcomDev_PHPUnit_Design_Package_Interface,
               EcomDev_PHPUnit_Isolation_Interface

8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
{
    /**
     * Asserts layout file existance in design packages,
     * and returns actual and expected filenames as result
     *
     * @param string $fileName
     * @param string $area
     * @param string|null $designPackage if not specified any theme will be used
     * @param string|null $theme if not specified any theme will be used
     * @return array of 'expected' and 'actual' file names
     */
    public function getLayoutFileAssertion($fileName, $area, $designPackage = null, $theme = null)
    {
        $this->reset();
        $this->setArea($area);

        if ($area == EcomDev_PHPUnit_Model_App::AREA_ADMINHTML) {
            $this->setStore(EcomDev_PHPUnit_Model_App::ADMIN_STORE_CODE);
        } else {
            $this->setStore(Mage::app()->getAnyStoreView()->getCode());
        }

        $this->setPackageName($designPackage);
        $this->setTheme($theme);

33 34 35 36 37
        $params = array(
            '_area' => $area,
            '_package' => $designPackage,
            '_theme' => $theme,
        );
38 39 40 41 42 43 44 45 46 47 48
        $actualFileName = $this->getLayoutFilename($fileName, $params);

        if ($theme !== null || $designPackage !== null) {
            $expectedTheme = $this->getTheme('layout');
            $expectedDesignPackage = $this->getPackageName();
            $params = array(
                '_type' => 'layout',
                '_theme' => $expectedTheme,
                '_package' => $expectedDesignPackage
            );

49
            $expectedFileName = $this->_renderFilename($fileName, $params);
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
        } else {
            $expectedFileName = $actualFileName;
            if (!file_exists($actualFileName)) {
                $actualFileName = false;
            }
        }

        return array(
            'actual' => $actualFileName,
            'expected' => $expectedFileName
        );
    }

    /**
     * Resets design data
     *
     * @return EcomDev_PHPUnit_Model_Design_Package
     */
    public function reset()
    {
        $this->_store = null;
        $this->_area = null;
        $this->_name = null;
        $this->_theme = null;
        $this->_config = null;
        $this->_rootDir = null;
        $this->_callbackFileDir = null;

        return $this;
    }
}