Nag_Unit_Driver_Base::testRecurringTasks PHP Method

testRecurringTasks() public method

public testRecurringTasks ( )
    public function testRecurringTasks()
    {
        $due = time() - 1;
        $recurrence = new Horde_Date_Recurrence($due);
        $recurrence->setRecurType(Horde_Date_Recurrence::RECUR_DAILY);
        $id = $this->_add(array('name' => 'TEST', 'desc' => 'Some test task.', 'due' => $due, 'recurrence' => $recurrence));
        $due = new Horde_Date($due);
        $result = self::$driver->get($id[0]);
        $next = $result->getNextDue();
        $this->assertInstanceOf('Horde_Date', $next);
        $this->assertEquals($due->timestamp(), $next->timestamp());
        $result->toggleComplete();
        $result->save();
        $result2 = self::$driver->get($id[0]);
        $due->mday++;
        $next = $result2->getNextDue();
        $this->assertInstanceOf('Horde_Date', $next);
        $this->assertEquals($due->timestamp(), $next->timestamp());
        $result2->toggleComplete();
        $result2->save();
        $result3 = self::$driver->get($id[0]);
        $due->mday++;
        $next = $result3->getNextDue();
        $this->assertInstanceOf('Horde_Date', $next);
        $this->assertEquals($due->timestamp(), $next->timestamp());
        $this->assertFalse($result3->recurrence->hasCompletion($due->year, $due->month, $due->mday));
        $due->mday--;
        $this->assertTrue($result3->recurrence->hasCompletion($due->year, $due->month, $due->mday));
        $due->mday--;
        $this->assertTrue($result3->recurrence->hasCompletion($due->year, $due->month, $due->mday));
    }