/**
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var Category $category */
     $category = $observer->getEvent()->getCategory();
     if ($category->getUrlKey() !== false) {
         $category->setUrlKey($this->categoryUrlPathGenerator->generateUrlKey($category))->setUrlPath($this->categoryUrlPathGenerator->getUrlPath($category));
         if (!$category->isObjectNew()) {
             $category->getResource()->saveAttribute($category, 'url_path');
             if ($category->dataHasChangedFor('url_path')) {
                 $this->updateUrlPathForChildren($category);
             }
         }
     }
 }
Exemple #2
0
 /**
  * @dataProvider generateUrlKeyDataProvider
  * @param string $urlKey
  * @param string $name
  * @param string $result
  */
 public function testGenerateUrlKey($urlKey, $name, $result)
 {
     $this->category->expects($this->once())->method('getUrlKey')->will($this->returnValue($urlKey));
     $this->category->expects($this->any())->method('getName')->will($this->returnValue($name));
     $this->category->expects($this->once())->method('formatUrlKey')->will($this->returnArgument(0));
     $this->assertEquals($result, $this->categoryUrlPathGenerator->generateUrlKey($this->category));
 }