예제 #1
0
 public function testClearApplicationData()
 {
     // Verifica se está tudo ok
     $this->BaseTestCase->setApplicationConstants();
     if (!is_writable(APPLICATION_DATA)) {
         $this->fail('APPLICATION_DATA ' . APPLICATION_DATA . ' não tem permissão de escrita');
     }
     // Grava umas bobeiras la
     $folder = APPLICATION_DATA . '/teste1';
     if (!file_exists($folder)) {
         $oldumask = umask(0);
         mkdir($folder);
         umask($oldumask);
     }
     file_put_contents($folder . '/test1.txt', 'teste');
     $folder = APPLICATION_DATA . '/teste2/teste3';
     if (!file_exists($folder)) {
         $oldumask = umask(0);
         mkdir($folder, 0777, true);
         umask($oldumask);
     }
     file_put_contents($folder . '/sample.txt', 'teste teste');
     // Verifica se a pasta está vazia
     $this->assertFalse($this->BaseTestCase->isApplicationDataEmpty());
     $this->BaseTestCase->clearApplicationData();
     // Verifica se está vazia
     $files = $objects = scandir(APPLICATION_DATA);
     $this->assertCount(3, $files, 'não tem mais nada no APPLICATION_DATA');
     $this->assertEquals(array('.', '..', '.gitignore'), $files, 'não tem mais nada no APPLICATION_DATA');
     // Verifica se a pasta está vazia
     $this->assertTrue($this->BaseTestCase->isApplicationDataEmpty());
     // Grava mais coisa no raiz do APPLICATION_DATA
     file_put_contents(APPLICATION_DATA . '/sample.txt', 'outro teste');
     // Verifica se a pasta está vazia depois de apagar
     $this->assertFalse($this->BaseTestCase->isApplicationDataEmpty());
     $this->assertTrue($this->BaseTestCase->clearApplicationData());
 }