Index: save_draft.test
===================================================================
--- save_draft.test	(revision 26949)
+++ save_draft.test	(working copy)
@@ -2,7 +2,8 @@
 
 class SaveDraftTestCase extends DrupalWebTestCase {
 
-  protected $admin;
+  protected $admin_user;
+  protected $save_draft_user;
 
   public static function getInfo() {
     return array(
@@ -14,8 +15,8 @@
 
   public function setUp() {
     parent::setUp(array('save_draft'));
-    $this->admin = $this->drupalCreateUser(array('create article content', 'edit any article content', 'view own unpublished content', 'save draft'));
-    $this->drupalLogin($this->admin);
+    $this->admin_user = $this->drupalCreateUser(array('administer nodes', 'bypass node access'));
+    $this->save_draft_user = $this->drupalCreateUser(array('create article content', 'edit any article content', 'view own unpublished content', 'save draft'));
     $langcode = LANGUAGE_NONE;
     $this->title_key = "title";
     $this->body_key = "body[$langcode][0][value]";
@@ -35,6 +36,9 @@
    * Make sure nodes save with the right publication status.
    */
   public function testNodeSave() {
+    // Log in as a user who should see the save draft button.
+    $this->drupalLogin($this->save_draft_user);
+
     // Publish a node, and make sure it's published.
     $edit = $this->getNodeArray();
     $this->drupalPost('node/add/article', $edit, t('Publish'));
@@ -62,11 +66,16 @@
    * Make sure node validation still runs even after we've altered the form.
    */
   public function testNodeValidation() {
+    // Log in as an administrator, who should be able to see the save draft
+    // button and also edit the node's author.
+    $this->drupalLogin($this->admin_user);
+
     // Try to create a node with a nonexistent author.
     $edit = $this->getNodeArray();
     // This username does not exist.
     $edit['name'] = $this->randomName(8);
     $this->drupalPost('node/add/article', $edit, t('Publish'));
+
     // We should not have been allowed to save the node.
     $this->assertRaw(t('The username %name does not exist.', array('%name' => $edit['name'])));
   }
