diff --git a/core/modules/views_ui/src/Tests/DisplayCRUDTest.php b/core/modules/views_ui/src/Tests/DisplayCRUDTest.php index 20f57d9ef265..1e060dcb78d2 100644 --- a/core/modules/views_ui/src/Tests/DisplayCRUDTest.php +++ b/core/modules/views_ui/src/Tests/DisplayCRUDTest.php @@ -81,6 +81,16 @@ class DisplayCRUDTest extends UITestBase { $this->drupalPostForm(NULL, array(), t('Save')); $this->assertNoLinkByHref($path_prefix . '/page_1', 'Make sure there is no display tab for the deleted display.'); + + // Test deleting a display that has a modified machine name. + $view = $this->randomView(); + $machine_name = 'new_machine_name'; + $path_prefix = 'admin/structure/views/view/' . $view['id'] . '/edit'; + $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_1/display_id", array('display_id' => $machine_name), 'Apply'); + $this->drupalPostForm(NULL, array(), 'Delete Page'); + $this->drupalPostForm(NULL, array(), t('Save')); + $this->assertResponse(200); + $this->assertNoLinkByHref($path_prefix . '/new_machine_name', 'Make sure there is no display tab for the deleted display.'); } /** diff --git a/core/modules/views_ui/src/ViewEditForm.php b/core/modules/views_ui/src/ViewEditForm.php index 5f8c095ad90a..530a47f9bdf4 100644 --- a/core/modules/views_ui/src/ViewEditForm.php +++ b/core/modules/views_ui/src/ViewEditForm.php @@ -266,7 +266,7 @@ class ViewEditForm extends ViewFormBase { // Rename display ids if needed. foreach ($executable->displayHandlers as $id => $display) { - if (!empty($display->display['new_id'])) { + if (!empty($display->display['new_id']) && empty($display->display['deleted'])) { $new_id = $display->display['new_id']; $display->display['id'] = $new_id; unset($display->display['new_id']);