/** * 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; }
/** * 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)); }