Index: modules/user/user.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v retrieving revision 1.89 diff -u -p -r1.89 user.admin.inc --- modules/user/user.admin.inc 17 Nov 2009 02:50:41 -0000 1.89 +++ modules/user/user.admin.inc 27 Nov 2009 19:36:37 -0000 @@ -826,15 +826,15 @@ function user_admin_role_submit($form, & $role = (object)$form_state['values']; if ($form_state['values']['op'] == t('Save role')) { user_role_save($role); - drupal_set_message(t('The role has been renamed.')); + drupal_set_message(t('The role %name has been renamed.', array('%name' => $role->name))); } elseif ($form_state['values']['op'] == t('Delete role')) { - user_role_delete($form_state['values']['rid']); - drupal_set_message(t('The role has been deleted.')); + user_role_delete((int)$form_state['values']['rid']); + drupal_set_message(t('The role %name has been deleted.', array('%name' => $role->name))); } elseif ($form_state['values']['op'] == t('Add role')) { user_role_save($role); - drupal_set_message(t('The role has been added.')); + drupal_set_message(t('The role %name has been added.', array('%name' => $role->name))); } $form_state['redirect'] = 'admin/config/people/roles'; return; Index: modules/user/user.test =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.test,v retrieving revision 1.68 diff -u -p -r1.68 user.test --- modules/user/user.test 17 Nov 2009 02:50:41 -0000 1.68 +++ modules/user/user.test 27 Nov 2009 19:36:39 -0000 @@ -1315,3 +1315,65 @@ class UserEditTestCase extends DrupalWeb $this->assertRaw(t('The name %name is already taken.', array('%name' => $edit['name']))); } } + +/** + * Test case to test adding, editing and deleting roles. + */ +class RoleEditTestCase extends DrupalWebTestCase { + protected $admin_user; + protected $role; + protected $rid; + + public static function getInfo() { + return array( + 'name' => 'Role edit', + 'description' => 'Test role edit page.', + 'group' => 'User', + ); + } + + function setUp() { + parent::setUp(); + // Create a user. + $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'administer users')); + $this->role = $this->randomName(); + // Find the new role ID - it must be the maximum. + $all_rids = array_keys($this->admin_user->roles); + sort($all_rids); + $this->rid = array_pop($all_rids); + } + + /** + * Test adding a role. + */ + function testAddRole() { + $this->drupalLogin($this->admin_user); + $edit = array('name' => $this->role); + $this->drupalPost('admin/config/people/roles', $edit, t('Add role')); + $this->assertText(t('The role %name has been added.', array('%name' => $edit['name'])), t('Successful save message displayed.')); + } + + /** + * Test editing a role. + */ + function testEditRole() { + $this->drupalLogin($this->admin_user); + $this->role = $this->randomName(); + $edit = array('name' => $this->role); + $this->drupalPost("admin/config/people/roles/edit/{$this->rid}", $edit, t('Save role')); + $this->assertText(t('The role %name has been renamed.', array('%name' => $edit['name'])), t('Successful editing message displayed.')); + $this->assertText($this->role, t('Edited role name successfully displayed')); + } + + /** + * Test deleting a role. + */ + function testDeleteRole() { + $this->drupalLogin($this->admin_user); + $edit = array('name' => $this->role); + $this->drupalPost("admin/config/people/roles/edit/{$this->rid}", $edit, t('Delete role')); + $this->assertNoRaw("admin/config/people/roles/edit/{$this->rid}", t('Role edit link removed.')); + $this->assertText(t('The role %name has been deleted.', array('%name' => $edit['name'])), t('Successful delete message displayed.')); + } + +}