diff --git a/modules/field_ui/field_ui.module b/modules/field_ui/field_ui.module index 6418ee8..ab65ff7 100644 --- a/modules/field_ui/field_ui.module +++ b/modules/field_ui/field_ui.module @@ -48,6 +48,18 @@ function field_ui_help($path, $arg) { } /** + * Implements hook_field_attach_rename_bundle(). + */ +function field_ui_field_attach_rename_bundle($entity_type, $bundle_old, $bundle_new) { + // The Field UI relies on entity_get_info() to build menu items for entity + // field administration pages. Clear the entity info cache and ensure that + // the menu is rebuilt. + entity_info_cache_clear(); + menu_rebuild(); +} + + +/** * Implements hook_menu(). */ function field_ui_menu() { diff --git a/modules/field_ui/field_ui.test b/modules/field_ui/field_ui.test index 9ff6c17..57f65df 100644 --- a/modules/field_ui/field_ui.test +++ b/modules/field_ui/field_ui.test @@ -411,6 +411,21 @@ class FieldUIManageFieldsTestCase extends FieldUITestCase { $this->drupalGet($bundle_path); $this->assertFalse($this->xpath('//select[@id="edit-add-existing-field-field-name"]//option[@value=:field_name]', array(':field_name' => $field_name)), t("The 'add existing field' select respects field types 'no_ui' property.")); } + + /** + * Test renaming a bundle. + */ + function testRenameBundle() { + $type2 = strtolower($this->randomName(8)) . '_' .'test'; + $hyphen_type2 = str_replace('_', '-', $type2); + + $options = array( + 'type' => $type2, + ); + $this->drupalPost('admin/structure/types/manage/' . $this->hyphen_type, $options, t('Save content type')); + + $this->drupalGet('admin/structure/types/manage/' . $hyphen_type2 . '/fields'); + } } /**