diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php index a5c5456..46e6825 100644 --- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php +++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php @@ -354,6 +354,11 @@ public function testMenuBundles() { $moved_item = entity_load('menu_link', $item->id(), TRUE); $this->assertNotEqual($moved_item->bundle(), $item->bundle(), 'Menu link bundle was changed'); $this->assertEqual($moved_item->bundle(), $menu->id(), 'Menu link bundle matches the menu'); + + $unsaved_item = entity_create('menu_link', array('menu_name' => $menu->id(), 'link_title' => $this->randomName(16), 'link_path' => '')); + $this->assertEqual($unsaved_item->bundle(), $menu->id(), 'Unsaved menu link bundle matches the menu'); + $this->assertEqual($unsaved_item->menu_name, $menu->id(), 'Unsaved menu link menu name matches the menu'); + } /** diff --git a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkStorageController.php b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkStorageController.php index 6a3eddb..e407379 100644 --- a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkStorageController.php +++ b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkStorageController.php @@ -69,6 +69,18 @@ public function __construct($entity_type, array $entity_info, Connection $databa /** * {@inheritdoc} */ + public function create(array $values) { + $entity = parent::create($values); + + if (isset($entity->menu_name)) { + $entity->bundle = $entity->menu_name; + } + return $entity; + } + + /** + * {@inheritdoc} + */ public static function createInstance(ContainerInterface $container, $entity_type, array $entity_info) { return new static( $entity_type,