Commit eeb96e9b authored by webchick's avatar webchick

Issue #2423153 by idebr, dawehner, Frankencio: Add menu from the editing page...

Issue #2423153 by idebr, dawehner, Frankencio: Add menu from the editing page doesn't save the changes
parent 53ca7d6a
......@@ -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 @@
*/
class MenuNodeTest extends WebTestBase {
/**
* An editor user.
*
* @var \Drupal\user\UserInterface
*/
protected $editor;
/**
* Modules to enable.
*
......@@ -31,14 +38,15 @@ protected function setUp() {
$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 @@ function testMenuNodeFormWidget() {
$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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment