/**
  * Retrieve the current category
  *
  * @return Mage_Catalog_Model_Category
  */
 public function getCurrentCategory()
 {
     if (!$this->hasCurrentCategory()) {
         if ($category = $this->getSplashPage()->getCategory()) {
             $this->setData('current_category', $category);
         }
     }
     return parent::getCurrentCategory();
 }
示例#2
0
 public function testGetSetCurrentCategory()
 {
     $existingCategory = new Mage_Catalog_Model_Category();
     $existingCategory->load(5);
     /* Category object */
     $model = new Mage_Catalog_Model_Layer();
     $model->setCurrentCategory($existingCategory);
     $this->assertSame($existingCategory, $model->getCurrentCategory());
     /* Category id */
     $model = new Mage_Catalog_Model_Layer();
     $model->setCurrentCategory(3);
     $actualCategory = $model->getCurrentCategory();
     $this->assertInstanceOf('Mage_Catalog_Model_Category', $actualCategory);
     $this->assertEquals(3, $actualCategory->getId());
     $this->assertSame($actualCategory, $model->getCurrentCategory());
     /* Category in registry */
     Mage::register('current_category', $existingCategory);
     try {
         $model = new Mage_Catalog_Model_Layer();
         $this->assertSame($existingCategory, $model->getCurrentCategory());
         Mage::unregister('current_category');
         $this->assertSame($existingCategory, $model->getCurrentCategory());
     } catch (Exception $e) {
         Mage::unregister('current_category');
         throw $e;
     }
     try {
         $model = new Mage_Catalog_Model_Layer();
         $model->setCurrentCategory(new Varien_Object());
         $this->fail('Assign category of invalid class.');
     } catch (Mage_Core_Exception $e) {
     }
     try {
         $model = new Mage_Catalog_Model_Layer();
         $model->setCurrentCategory(new Mage_Catalog_Model_Category());
         $this->fail('Assign category with invalid id.');
     } catch (Mage_Core_Exception $e) {
     }
 }