diff --git a/core/modules/user/user.test b/core/modules/user/user.test
index 15c427b..57a6dcb 100644
--- a/core/modules/user/user.test
+++ b/core/modules/user/user.test
@@ -2209,3 +2209,59 @@ class UserEntityCallbacksTestCase extends DrupalWebTestCase {
     $this->assertEqual('user/' . $this->account->uid, $uri['path'], t('Correct user URI.'));
   }
 }
+
+/**
+ * Tests adding, editing and deleting roles.
+ */
+class RoleCRUDTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'User role editing',
+      'description' => 'Test role edit page.',
+      'group' => 'User',
+    );
+  }
+
+  /**
+   * Tests 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/people/permissions/roles', $edit, t('Add role'));
+    $this->assertText('The role has been added.', 'Role added successfully.');
+  }
+
+  /**
+   * Tests 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/people/permissions/roles/edit/3', $edit, t('Delete role'));
+    $this->drupalPost(NULL, array(), t('Delete'));
+    $this->assertNoRaw('admin/people/permissions/roles/edit/3', 'Role edit link removed.');
+    $this->assertText('The role has been deleted.', 'Role deleted successfully.');
+  }
+  /**
+   * Tests 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/people/permissions/roles/edit/3', $edit, t('Save role'));
+    $this->assertText('The role has been renamed.', 'Role edited successfully.');
+    $this->assertText($random_name, 'Edited role name successfully displayed');
+   }
+}
