Issue #2423153 by idebr, dawehner, Frankencio: Add menu from the editing page doesn't save the changes
parent
53ca7d6a94
commit
eeb96e9b8e
|
|
@ -332,7 +332,12 @@ function menu_ui_form_node_form_alter(&$form, FormStateInterface $form_state) {
|
|||
'#default_value' => $defaults['weight'],
|
||||
'#description' => t('Menu links with lower weights are displayed before links with higher weights.'),
|
||||
);
|
||||
$form['actions']['submit']['#submit'][] = 'menu_ui_form_node_form_submit';
|
||||
|
||||
foreach (array_keys($form['actions']) as $action) {
|
||||
if (isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
|
||||
$form['actions'][$action]['#submit'][] = 'menu_ui_form_node_form_submit';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -17,6 +17,13 @@ use Drupal\menu_link_content\Entity\MenuLinkContent;
|
|||
*/
|
||||
class MenuNodeTest extends WebTestBase {
|
||||
|
||||
/**
|
||||
* An editor user.
|
||||
*
|
||||
* @var \Drupal\user\UserInterface
|
||||
*/
|
||||
protected $editor;
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
|
|
@ -31,14 +38,15 @@ class MenuNodeTest extends WebTestBase {
|
|||
|
||||
$this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
|
||||
|
||||
$this->drupalLogin($this->drupalCreateUser(array(
|
||||
$this->editor = $this->drupalCreateUser(array(
|
||||
'access administration pages',
|
||||
'administer content types',
|
||||
'administer menu',
|
||||
'create page content',
|
||||
'edit any page content',
|
||||
'delete any page content',
|
||||
)));
|
||||
));
|
||||
$this->drupalLogin($this->editor);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -104,6 +112,36 @@ class MenuNodeTest extends WebTestBase {
|
|||
$this->drupalGet('test-page');
|
||||
$this->assertNoLink($node_title);
|
||||
|
||||
// Use not only the save button, but also the two special buttons:
|
||||
// 'Save and publish' as well as 'Save and keep published'.
|
||||
// These buttons just appear for 'administer nodes' users.
|
||||
$admin_user = $this->drupalCreateUser([
|
||||
'access administration pages',
|
||||
'administer content types',
|
||||
'administer nodes',
|
||||
'administer menu',
|
||||
'create page content',
|
||||
'edit any page content',
|
||||
]);
|
||||
$this->drupalLogin($admin_user);
|
||||
foreach ([t('Save and unpublish') => FALSE, t('Save and keep unpublished') => FALSE, t('Save and publish') => TRUE, t('Save and keep published') => TRUE] as $submit => $visible) {
|
||||
$edit = [
|
||||
'menu[enabled]' => 1,
|
||||
'menu[title]' => $node_title,
|
||||
];
|
||||
$this->drupalPostForm('node/' . $node->id() . '/edit', $edit, $submit);
|
||||
// Assert that the link exists.
|
||||
$this->drupalGet('test-page');
|
||||
if ($visible) {
|
||||
$this->assertLink($node_title, 0, 'Found a menu link after submitted with ' . $submit);
|
||||
}
|
||||
else {
|
||||
$this->assertNoLink($node_title, 'Found no menu link after submitted with ' . $submit);
|
||||
}
|
||||
}
|
||||
|
||||
// Log back in as normal user.
|
||||
$this->drupalLogin($this->editor);
|
||||
// Edit the node and create a menu link.
|
||||
$edit = array(
|
||||
'menu[enabled]' => 1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue