public function testASortPersistent() { $ts = new TodosEx(); $ts->loadFromFile('todo.txt'); $file = tempnam(sys_get_temp_dir(), 'otodo'); $ts->asort(array('done' => true, 'due' => true, 'priority' => false, 'text' => false)); $ts->saveToFile($file); $this->assertEquals(sha1_file('todo.txt'), sha1_file($file)); unlink($file); }
public function testMarkDone() { $ts = new TodosEx(); $t = new TodoEx($ts); $t->text = 'dummy'; $t->recurrent = new Recurrent('1d'); $t->due = new DateTime('2014-01-01'); $t->markDone(); $this->assertTrue($ts->count() == 1); $t = $ts[array_pop($ts->array_keys())]; $this->assertFalse($t->done); $this->assertEquals($t->text, 'dummy'); $this->assertEquals($t->recurrent->toString(), '1d'); $this->assertEquals($t->due->format('Y-m-d'), '2014-01-02'); }
public function archive($archive) { if (!file_exists($archive)) { touch($archive); } $ta = new TodosEx(); $ta->loadFromFile($archive); $unset = array(); foreach ($this->todos as $k => $todo) { if ($todo->done) { $ta[] = $todo; $unset[] = $k; } } if (count($unset)) { foreach ($unset as $k) { unset($this->todos[$k]); } $ta->saveToFile($archive); return count($unset); } else { return 0; } }