/** * 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(); }
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) { } }