Index: modules/user/user.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.test,v
retrieving revision 1.16
diff -u -p -r1.16 user.test
--- modules/user/user.test	1 Oct 2008 00:54:43 -0000	1.16
+++ modules/user/user.test	24 Oct 2008 18:49:08 -0000
@@ -523,3 +523,86 @@ class UserAdminTestCase extends DrupalWe
     $this->assertEqual($account->status, 0, 'User B blocked');
   }
 }
+
+class UserEditTestCase extends DrupalWebTestCase {
+  /**
+   * Implementation of getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name' => t('User edit'),
+      'description' => t('Test editing a user (with malicious values and without).'),
+      'group' => t('User')
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Edits a user.
+   */
+  function testUserEdit() {
+    $this->user = $this->drupalCreateUser(array());
+    $user = $this->user;
+    $this->drupalLogin($user);
+    
+    //edit user correctly
+    $edit = array(
+      'mail' => $user->mail,
+      'pass[pass1]' => $user->pass_raw,
+      'pass[pass2]' => $user->pass_raw,
+    );
+    $this->DrupalPost('user/' . $user->uid . '/edit', $edit, 'Save');
+    
+    //check if edit gives no errors
+    $this->assertText(t('The changes have been saved.'), t('Successful save message displayed.'));
+    $this->assertNoRaw('<div class="messages error">', t('No error message displayed.'));
+    
+    
+    //edit user with wrong password
+    $edit = array(
+      'mail' => $user->mail,
+      'pass[pass1]' => $user->pass_raw,
+      'pass[pass2]' => $this->randomName(8),
+    );
+    $this->DrupalPost('user/' . $user->uid . '/edit', $edit, 'Save');
+    
+    //check if edit gives correct errors
+    $this->assertNoText(t('The changes have been saved.'), t('No successful save message displayed.'));
+    $this->assertRaw('<div class="messages error">', t('Error message displayed.'));
+    
+    //$content = $this->DrupalGet('user/' . $user->uid . '/edit');
+    $this->assertTrue(TRUE, var_export($user, TRUE));
+    
+    //edit user with wrong email
+    $edit = array(
+      'mail' => 'wrong-email.example.com',
+      'pass[pass1]' => $user->pass_raw,
+      'pass[pass2]' => $user->pass_raw,
+    );
+    $this->DrupalPost('user/' . $user->uid . '/edit', $edit, 'Save');
+    
+    //check if edit gives correct errors
+    $this->assertNoText(t('The changes have been saved.'), t('No successful save message displayed.'));
+    $this->assertRaw('<div class="messages error">', t('Error message displayed.'));
+    
+    //edit user with rights to edit name
+    $this->user = $this->drupalCreateUser(array('change own username'));
+    $user = $this->user;
+    $this->drupalLogin($user);
+    
+    $edit = array(
+      'name' => $user->name,
+      'mail' => $user->mail,
+      'pass[pass1]' => $user->pass_raw,
+      'pass[pass2]' => $user->pass_raw,
+    );
+    $this->DrupalPost('user/' . $user->uid . '/edit', $edit, 'Save');
+    
+    //check if edit gives correct errors
+    $this->assertText(t('The changes have been saved.'), t('Successful save message displayed.'));
+    $this->assertNoRaw('<div class="messages error">', t('No error message displayed.'));
+  }
+}
\ No newline at end of file
