Index: modules/user/user.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.test,v
retrieving revision 1.66
diff -u -p -r1.66 user.test
--- modules/user/user.test	1 Nov 2009 21:26:44 -0000	1.66
+++ modules/user/user.test	5 Nov 2009 23:11:18 -0000
@@ -1316,3 +1316,58 @@ 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 {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Role edit',
+      'description' => 'Test role edit page.',
+      'group' => 'User',
+    );
+  }
+
+  /**
+   * Test adding a role.
+   */
+  function testAddRole() {
+    // Create a user.
+    $web_user = $this->drupalCreateUser(array('administer permissions'));
+    $this->drupalLogin($web_user);
+
+    $edit['name'] = $this->randomName();
+    $this->drupalPost('admin/config/people/roles', $edit, t('Add role'));
+    $this->assertText(t('The role has been added.'), t('Successful save message displayed.'));
+  }
+  
+  /**
+   * Test deleting a role.
+   */
+  function testDeleteRole() {
+    // Create a user.
+    $web_user = $this->drupalCreateUser(array('administer permissions'));
+    $this->drupalLogin($web_user);
+    // Test deleting the administrator role (rid = 3).
+    $edit['name'] = t('Administrator');
+    $this->drupalPost('admin/config/people/roles/edit/3', $edit, t('Delete role'));
+    $this->assertNoRaw('admin/config/people/roles/edit/3', t('Role edit link removed.'));
+    $this->assertText(t('The role has been deleted.'), t('Successful delete message displayed.'));
+  }
+  /**
+   * Test editing a role.
+   */
+   function testEditRole() {
+    // Create a user.
+    $web_user = $this->drupalCreateUser(array('administer permissions'));
+    $this->drupalLogin($web_user);
+    // Test editing the administrator role (rid = 3).
+    $random_name = $this->randomName();
+    $edit['name'] = $random_name;
+    $this->drupalPost('admin/config/people/roles/edit/3', $edit, t('Save role'));
+    $this->assertText(t('The role has been renamed.'), t('Successful editing message displayed.'));
+    $this->assertText($random_name, t('Edited role name successfully displayed'));
+   }
+}
