Only redirect to the final URL once we are really finished with the task list.
authorGunnar Wrobel <wrobel@temple.(none)>
Tue, 9 Mar 2010 16:39:56 +0000 (17:39 +0100)
committerGunnar Wrobel <wrobel@temple.(none)>
Tue, 9 Mar 2010 16:39:56 +0000 (17:39 +0100)
framework/LoginTasks/lib/Horde/LoginTasks.php
framework/LoginTasks/test/Horde/LoginTasks/LoginTasksTest.php

index e62af95..858132e 100644 (file)
@@ -241,13 +241,13 @@ class Horde_LoginTasks
              * object in the session, while still indicating we have
              * completed the login tasks for this application. */
             $this->_tasklist = true;
+
+            return $this->_backend->redirect($tasklist_target);
         }
 
         if (!$processed && $need_display) {
             $this->_tasklist->target = $url;
             return $this->_backend->redirect($this->getLoginTasksUrl());
-        } elseif ($processed && !$need_display) {
-            return $this->_backend->redirect($tasklist_target);
         }
     }
 
index 6da5448..1107e1c 100644 (file)
@@ -429,7 +429,7 @@ class Horde_LoginTasks_LoginTasksTest extends PHPUnit_Framework_TestCase
 
     public function testConfirmSeriesDisplay()
     {
-        $this->markTestIncomplete();
+        //$this->markTestIncomplete();
         Horde_LoginTasks_Stub_Task::$executed = array();
         $tasks = $this->_getLoginTasks(
             array(
@@ -468,8 +468,7 @@ class Horde_LoginTasks_LoginTasksTest extends PHPUnit_Framework_TestCase
         );
         $_POST['logintasks_confirm_0'] = true;
         $_POST['logintasks_confirm_1'] = true;
-        $this->assertEquals(
-            'redirect',
+        $this->assertNull(
             $tasks->runTasks(true)
         );
         $this->assertEquals(
@@ -480,13 +479,15 @@ class Horde_LoginTasks_LoginTasksTest extends PHPUnit_Framework_TestCase
             ),
             Horde_LoginTasks_Stub_Task::$executed
         );
-        $this->assertContains(
-            'http:///services/logintasks.php?app=test',
-            (string) $tasks->runTasks(false)
+        $_POST = array();
+        $this->assertNull(
+            $tasks->runTasks(false)
         );
         $this->assertEquals(
             array(
                 'Horde_LoginTasks_Stub_ConfirmNo',
+                'Horde_LoginTasks_Stub_Confirm',
+                'Horde_LoginTasks_Stub_Task',
             ),
             Horde_LoginTasks_Stub_Task::$executed
         );