/**
  * testUpdateFolderCache
  */
 public function testUpdateFolderCache()
 {
     $result = $this->_json->updateFolderCache($this->_account->getId(), '');
     // create folders directly on imap server
     $this->_imap->createFolder('test', $this->_testFolderName, $this->_account->delimiter);
     $this->_imap->createFolder('testsub', $this->_testFolderName . $this->_account->delimiter . 'test', $this->_account->delimiter);
     // if something goes wrong, we need to delete these folders in tearDown
     $this->_createdFolders[] = $this->_testFolderName . $this->_account->delimiter . 'test' . $this->_account->delimiter . 'testsub';
     $this->_createdFolders[] = $this->_testFolderName . $this->_account->delimiter . 'test';
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Update cache and check if folder is found');
     }
     $result = $this->_json->updateFolderCache($this->_account->getId(), $this->_testFolderName);
     $testfolder = $result[0];
     $this->assertGreaterThan(0, count($result));
     $this->assertEquals($this->_testFolderName . $this->_account->delimiter . 'test', $testfolder['globalname']);
     $this->assertEquals(TRUE, (bool) $testfolder['has_children'], 'should have children');
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Delete subfolder directly on imap server');
     }
     $this->_imap->removeFolder($this->_testFolderName . $this->_account->delimiter . 'test' . $this->_account->delimiter . 'testsub');
     array_shift($this->_createdFolders);
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Check if has_children got updated and folder is removed from cache');
     }
     $this->_json->updateFolderCache($this->_account->getId(), '');
     $testfolder = $this->_getFolder($this->_testFolderName . $this->_account->delimiter . 'test');
     $this->assertEquals(FALSE, (bool) $testfolder['has_children'], 'should have no children');
     return $testfolder;
 }
예제 #2
0
 /**
  * testUpdateFolderCache
  */
 public function testUpdateFolderCache()
 {
     $result = $this->_json->updateFolderCache($this->_account->getId(), '');
     // create folders directly on imap server
     $this->_imap->createFolder('test', $this->_testFolderName, $this->_account->delimiter);
     $this->_imap->createFolder('testsub', $this->_testFolderName . $this->_account->delimiter . 'test', $this->_account->delimiter);
     // if something goes wrong, we need to delete these folders in tearDown
     $this->_createdFolders[] = $this->_testFolderName . $this->_account->delimiter . 'test' . $this->_account->delimiter . 'testsub';
     $this->_createdFolders[] = $this->_testFolderName . $this->_account->delimiter . 'test';
     // update cache and check if folder is found
     $result = $this->_json->updateFolderCache($this->_account->getId(), $this->_testFolderName);
     $testfolder = $result[0];
     //print_r($testfolder);
     $this->assertGreaterThan(0, count($result));
     $this->assertEquals($this->_testFolderName . $this->_account->delimiter . 'test', $testfolder['globalname']);
     $this->assertEquals(TRUE, (bool) $testfolder['has_children'], 'should have children');
     // delete subfolder directly on imap server
     $this->_imap->removeFolder($this->_testFolderName . $this->_account->delimiter . 'test' . $this->_account->delimiter . 'testsub');
     array_shift($this->_createdFolders);
     // check if has_children got updated and folder is removed from cache
     $this->_json->updateFolderCache($this->_account->getId(), '');
     $testfolder = $this->_getFolder($this->_testFolderName . $this->_account->delimiter . 'test');
     $this->assertEquals(FALSE, (bool) $testfolder['has_children'], 'should have no children');
     $this->setExpectedException('Tinebase_Exception_NotFound');
     $testfoldersub = $this->_getFolder($this->_testFolderName . $this->_account->delimiter . 'test' . $this->_account->delimiter . 'testsub');
     $this->_imap->removeFolder($this->_testFolderName . $this->_account->delimiter . 'test');
     array_shift($this->_createdFolders);
     // try to update message cache of nonexistant folder
     $this->setExpectedException('Felamimail_Exception_IMAPFolderNotFound');
     $removedTestfolder = $this->_json->updateMessageCache($testfolder['id'], 1);
     // update cache and check if folder is deleted
     $result = $this->_json->updateFolderCache($this->_account->getId(), $this->_testFolderName);
     $this->assertEquals(0, count($result));
 }