diff --git a/config/unicaen-zimbra.global.php.dist b/config/unicaen-zimbra.global.php.dist index c3a4322531f3c60fe88d8e7e20554c703ddfb41c..2bb9dac0d0ab84b71e76baad69a56f6b782aaf17 100644 --- a/config/unicaen-zimbra.global.php.dist +++ b/config/unicaen-zimbra.global.php.dist @@ -1,11 +1,11 @@ <?php $settings = array( - 'server' => 'zimbra-pp.unicaen.fr', + 'server' => 'wzstore01.unicaen.fr', 'port' => 7071, - 'email' => 'david.surville@pp.unicaen.fr', - 'password' => 'Zimbra14', - 'domain' => 'pp.unicaen.fr', + 'email' => 'adminsoap@unicaen.fr', + 'password' => 'ZsIoMaBpRa', + 'domain' => 'unicaen.fr', ); return array( diff --git a/src/UnicaenZimbra/Processus/BoiteGenerique.php b/src/UnicaenZimbra/Processus/BoiteGenerique.php new file mode 100644 index 0000000000000000000000000000000000000000..d79f74086de579fb33e112b8fa79e312e18dcf1b --- /dev/null +++ b/src/UnicaenZimbra/Processus/BoiteGenerique.php @@ -0,0 +1,240 @@ +<?php + +/** + * Processus de gestion des boites génériques + * + * @author Laurent LECLUSE <laurent.lecluse at unicaen.fr> + */ + +namespace UnicaenZimbra\Processus; + +use UnicaenZimbra\Entity\Account; +use UnicaenZimbra\Entity\Identity; +use UnicaenZimbra\Entity\Grant; +use UnicaenZimbra\Entity\Filter\Filter; +use UnicaenZimbra\Entity\Filter\Test\Address as FilterTestAddress; +use UnicaenZimbra\Entity\Filter\Test\Header as FilterTestHeader; +use UnicaenZimbra\Entity\Filter\Action\FileInto as FilterActionFileInto; +use UnicaenZimbra\Entity\Filter\Action\Stop as FilterActionStop; +use UnicaenZimbra\Service\Folder as FolderService; + +class BoiteGenerique extends Processus +{ + + /** + * Création d'une boite générique + * + * @todo Ajouter la COS... + * @param string $name Nom de la boite + * @param string $password Mot de passe de la boite + * @param string $mail Adresse mail de la boite générique + * @param string $description Description + */ + public function create( $mail, $password, $name, $description ) + { + $accountService = $this->getZimbra()->getAccountService(); + $cosService = $this->getZimbra()->getCosService(); + + $account = new Account; + $account->name = $mail; + $account->description = $description; + $account->zimbraCOSId = $cosService->get('default')->getId(); + $accountService->create( $account, $password ); + $accountService->addAlias($account, $name.substr($mail, strpos($mail,'@'))); + } + + /** + * Destruction de la boite générique + * + * @param string $mail + */ + public function delete( $mail ) + { + $accountService = $this->getZimbra()->getAccountService(); + $accountService->delete($accountService->get($mail)); + } + + /** + * Crée une adresse fonctionnelle par rapport à la boite générique (paramètre $mail) + * + * @param string $mail + * @param string $adresseFonctionnelle + */ + public function createAdresseFonctionnelle( $mail, $adresseFonctionnelle ) + { + $afName = $this->getMailName( $adresseFonctionnelle ); + + $accountService = $this->getZimbra()->getAccountService(); + $folderService = $this->getZimbra()->getFolderService(); + $filterService = $this->getZimbra()->getFilterService(); + + /****** Travail sur la boite générique ******/ + $bg = $accountService->get( $mail ); + $folderService->setAccount($bg ); + $filterService->setAccount($bg ); + + /* Alias */ + $accountService->addAlias( $bg, $adresseFonctionnelle ); + + /* Répertoires */ + $inputFolder = $folderService->create($afName.' | Réception'); + $sentFolder = $folderService->create($afName.' | Envoi'); + + /* Filtre de réception */ + $filter = new Filter; + $filter->setName($afName.' | Réception'); + $test = new FilterTestAddress; + $test->setHeader('to,cc'); + $test->setStringComparison('is'); + $test->setPart('all'); + $test->setValue($adresseFonctionnelle); + $filter->addTest($test); + + $action = new FilterActionFileInto; + $action->setFolderPath( $inputFolder->absFolderPath ); + $filter->addAction($action); + $filter->addAction( new FilterActionStop ); + $filterService->createInput($filter); + } + + /** + * Supprime une adresse fonctionnelle par rapport à la boite générique (paramètre $mail) + * + * @param string $mail + * @param string $adresseFonctionnelle + */ + public function deleteAdresseFonctionnelle( $mail, $adresseFonctionnelle ) + { + $afName = $this->getMailName( $adresseFonctionnelle ); + + $accountService = $this->getZimbra()->getAccountService(); + $folderService = $this->getZimbra()->getFolderService(); + $filterService = $this->getZimbra()->getFilterService(); + + /****** Travail sur la boite générique ******/ + $bg = $accountService->get( $mail ); + $folderService->setAccount( $bg ); + $filterService->setAccount( $bg ); + + /* Alias */ + $accountService->removeAlias( $bg, $adresseFonctionnelle ); + + /* Répertoires */ + $folderService->delete( $folderService->get($afName.' | Réception') ); + $folderService->delete( $folderService->get($afName.' | Envoi') ); + + /* Filtres */ + $filterService->deleteInput($afName.' | Réception'); + } + + public function grantUserToAdresseFonctionnelle( $adresseFonctionnelle, $userMail ) + { + $afName = $this->getMailName( $adresseFonctionnelle ); + + $aliasService = $this->getZimbra()->getAliasService(); + $accountService = $this->getZimbra()->getAccountService(); + $folderService = $this->getZimbra()->getFolderService(); + $filterService = $this->getZimbra()->getFilterService(); + $identityService = $this->getZimbra()->getIdentityService(); + + $alias = $aliasService->get( $adresseFonctionnelle ); + + /****** Travail sur la boite générique ******/ + $bgAccount = $accountService->get($alias->zimbraAliasTargetId, 'id'); + $userAccount = $accountService->get( $userMail ); + $folderService->setAccount($bgAccount); + + /* Ajout des partages */ + $grant = new Grant; + $grant->setGrantee($userAccount); + $grant->perm = Grant::PERM_MANAGE; + + $inputFolder = $folderService->get($afName.' | Réception'); + $sentFolder = $folderService->get($afName.' | Envoi'); + + $folderService->addGrant( $inputFolder, $grant, FolderService::GRANT_ACTION_NONE ) + ->createMountPoint($inputFolder, $userAccount, $inputFolder->absFolderPath) + ->addGrant( $sentFolder, $grant, FolderService::GRANT_ACTION_NONE ) + ->createMountPoint($sentFolder, $userAccount, $sentFolder->absFolderPath); + + /****** Travail sur la boite utilisateur ******/ + $filterService->setAccount($userAccount); + $identityService->setAccount($userAccount); + $folderService->setAccount($userAccount); + + /* Filtres */ + $filter = new Filter; + $filter->setName($afName.' | Envoi'); + $test = new FilterTestHeader; + $test->setHeader('Reply-to'); + $test->setStringComparison('is'); + $test->setValue($adresseFonctionnelle); + $filter->addTest($test); + + $action = new FilterActionFileInto; + $action->setFolderPath( $afName.' | Envoi' ); + $filter->addAction($action); + $filter->addAction( new FilterActionStop ); + $filterService->createOutput($filter); + + /* Avatar */ + $identity = new Identity; + $identity->setName($afName); + $identity->zimbraPrefFromAddress = $userMail; + $identity->zimbraPrefFromAddressType = 'sendAs'; + $identity->zimbraPrefFromDisplay = $adresseFonctionnelle; + $identity->zimbraPrefWhenInFolderIds = $folderService->get($afName.' | Réception')->getId(); + $identity->zimbraPrefWhenInFoldersEnabled = true; + $identity->zimbraPrefReplyToAddress = $adresseFonctionnelle; + $identity->zimbraPrefReplyToEnabled = true; + $identity->zimbraPrefWhenSentToAddresses = $adresseFonctionnelle; + $identity->zimbraPrefWhenSentToEnabled = true; + $identityService->create($identity); + } + + public function revokeUserFromAdresseFonctionnelle( $adresseFonctionnelle, $userMail ) + { + $afName = $this->getMailName( $adresseFonctionnelle ); + + $aliasService = $this->getZimbra()->getAliasService(); + $accountService = $this->getZimbra()->getAccountService(); + $folderService = $this->getZimbra()->getFolderService(); + $filterService = $this->getZimbra()->getFilterService(); + $identityService = $this->getZimbra()->getIdentityService(); + + $alias = $aliasService->get( $adresseFonctionnelle ); + + /****** Travail sur la boite générique ******/ + $bgAccount = $accountService->get($alias->zimbraAliasTargetId, 'id'); + $userAccount = $accountService->get( $userMail ); + $folderService->setAccount($bgAccount); + + /* Suppression des partages */ + $inputFolder = $folderService->get($afName.' | Réception'); + $sentFolder = $folderService->get($afName.' | Envoi'); + + $folderService->revokeGrant( $inputFolder, $userAccount ) + ->revokeGrant( $sentFolder, $userAccount ); + + /****** Travail sur la boite utilisateur ******/ + $filterService->setAccount($userAccount); + $identityService->setAccount($userAccount); + + /* Filtres */ + $filterService->deleteOutput($afName.' | Envoi'); + + /* Avatar */ + $identityService->delete( $identityService->get($afName) ); + } + + /** + * Retourne la partie locale d'une adresse mail (tout ce qu'il y a avant le dernier @) + * + * @param string $mail + * @return string + */ + private function getMailName( $mail ) + { + return substr( $mail, 0, strrpos($mail,'@')); + } +} \ No newline at end of file diff --git a/src/UnicaenZimbra/Processus/Processus.php b/src/UnicaenZimbra/Processus/Processus.php new file mode 100644 index 0000000000000000000000000000000000000000..86903cb7781c24e24d682cefd5572de8f94b529c --- /dev/null +++ b/src/UnicaenZimbra/Processus/Processus.php @@ -0,0 +1,42 @@ +<?php + +/** + * Processus de gestion des boites génériques + * + * @author Laurent LECLUSE <laurent.lecluse at unicaen.fr> + */ + +namespace UnicaenZimbra\Processus; + +use UnicaenZimbra\Zimbra; + +abstract class Processus{ + + /** + * + * @param Zimbra $zimbra + */ + protected $zimbra; + + + + + + /** + * + * @param Zimbra $zimbra + */ + public function setZimbra( Zimbra $zimbra ) + { + $this->zimbra = $zimbra; + } + + /** + * + * @return Zimbra + */ + public function getZimbra() + { + return $this->zimbra; + } +} \ No newline at end of file diff --git a/src/UnicaenZimbra/Service/Account.php b/src/UnicaenZimbra/Service/Account.php index cc446b51dc076f92781b2c04d71d11e26a38b428..9a5168b9d7b91a8d688de684d18f7959bdb5e4aa 100644 --- a/src/UnicaenZimbra/Service/Account.php +++ b/src/UnicaenZimbra/Service/Account.php @@ -295,12 +295,12 @@ class Account extends Service { $account = null; } - $params = array( + $attributes = array( 'id' => $id, 'alias' => $alias ); - $this->zimbra->request('RemoveAccountAliasRequest', array(), $params); + $this->zimbra->request('RemoveAccountAliasRequest', $attributes, array()); if (! empty($account)){ $lastAlias = $account->getAlias(); diff --git a/src/UnicaenZimbra/Service/Alias.php b/src/UnicaenZimbra/Service/Alias.php index 79005df81a0ffd859b4935f23aaea903d28c2715..e43e90299eda7d07ad16e9c29bdb6dec93170e40 100644 --- a/src/UnicaenZimbra/Service/Alias.php +++ b/src/UnicaenZimbra/Service/Alias.php @@ -38,6 +38,29 @@ class Alias extends Service { return $results; } + /** + * Retourne un objet alias en fonction de son adresse mail + * + * @param string $name + * @return AliasEntity + */ + public function get( $name ) + { + list( $uid, $domain ) = explode( '@', $name ); + $query = 'uid='.$uid; + + $result = $this->zimbra->searchDirectory($domain, 1, 0, 'aliases', null, $query); + $count = (int)$result->children()->SearchDirectoryResponse['searchTotal']; + if (0 == $count){ + throw new Exception('L\'alias "'.$name.'" n\a pas pu être trouvé'); + }else{ + $alias = new AliasEntity; + $alias->populate( $result->children()->SearchDirectoryResponse->children()[0] ); + $this->count = $count; + return $alias; + } + } + /** * Détermine si un alias existe ou non * diff --git a/src/UnicaenZimbra/Service/Filter.php b/src/UnicaenZimbra/Service/Filter.php index 00e224786b5421320ca44c8b86bab996b57565ee..f87efaf945964d336b9ad8982da14e2da1ee723f 100644 --- a/src/UnicaenZimbra/Service/Filter.php +++ b/src/UnicaenZimbra/Service/Filter.php @@ -93,6 +93,31 @@ class Filter extends Service { return $results; } + /** + * Ajoute un filtre en entrée + * + * @param FilterEntity $filter + */ + public function createInput( FilterEntity $filter ) + { + $filters = $this->getInput(); + $filters[$filter->getName()] = $filter; + $this->setInput($filters); + } + + /** + * Supprime un filtre en entrée à partir de son nom ou d'un objet + * + * @param FilterEntity|string $filter + */ + public function deleteInput( $filter ) + { + if ($filter instanceof FilterEntity) $filter = $filter->getName(); + $filters = $this->getInput(); + unset($filters[$filter]); + $this->setInput($filters); + } + /** * Retourne les filtres en sortie * @@ -116,6 +141,31 @@ class Filter extends Service { return $results; } + /** + * Ajoute un filtre en sortie + * + * @param FilterEntity $filter + */ + public function createOutput( FilterEntity $filter ) + { + $filters = $this->getOutput(); + $filters[$filter->getName()] = $filter; + $this->setOutput($filters); + } + + /** + * Supprime un filtre en sortie à partir de son nom ou d'un objet + * + * @param FilterEntity|string $filter + */ + public function deleteOutput( $filter ) + { + if ($filter instanceof FilterEntity) $filter = $filter->getName(); + $filters = $this->getOutput(); + unset($filters[$filter]); + $this->setOutput($filters); + } + /** * Applique des filtres en entrée * diff --git a/src/UnicaenZimbra/Service/Folder.php b/src/UnicaenZimbra/Service/Folder.php index d5fec54700d8d70c435e11ddf1bcbd4b08ec673a..4a4844cfa0227306764d9bda1178b29aa8728d8f 100644 --- a/src/UnicaenZimbra/Service/Folder.php +++ b/src/UnicaenZimbra/Service/Folder.php @@ -12,7 +12,6 @@ use UnicaenZimbra\Entity\Folder as FolderEntity; use UnicaenZimbra\Entity\Account as AccountEntity; use UnicaenZimbra\Entity\Grant as GrantEntity; use UnicaenZimbra\Entity\Link as LinkEntity; -use UnicaenZimbra\Zimbra; use Exception; class Folder extends Service { @@ -316,38 +315,18 @@ class Folder extends Service { switch( $action ){ case self::GRANT_ACTION_SENDMAIL: - /* Envoi d'un mail au destinataire pour la partage */ - $params = array( - 'item' => array( '@attributes' => array( 'id' => $id ) ), - 'e' => array( '@attributes' => array( 'a' => $grant->granteeName ) ), - ); - $attributes = array( - 'action' => 'edit' - ); - $this->zimbra->request('SendShareNotificationRequest', $attributes, $params, self::URN); + /* Envoi d'un mail au destinataire pour le partage */ + if ($grant->granteeType != GrantEntity::TYPE_USR){ + throw new Exception('L\'envoi de mail de notification ne fonctionne que si le partage se fait à un utilisateur'); + } + $this->sendGrantNotification($id, $grant->granteeName); break; case self::GRANT_ACTION_LINK: /* Ajout automatique du lien vers le dossier partagé sur le destinataire */ - if (null == $folder) $folder = $this->get($id,'id'); - - $currentAccount = $this->account; - $this->account = $grant->granteeName; - $destRootFolder = $this->get('/'); - $this->account = $currentAccount; - - $owner = $this->getAccount(); - - $attributes = array(); - $params = array( - 'link' => array( '@attributes' => array( - 'name' => $folder->getName().' de '.$owner->displayName, - 'rid' => explode(':',$id)[1], - 'zid' => explode(':',$id)[0], - 'owner' => $owner->getName(), - 'l' => $destRootFolder->getId() - ) ) - ); - $this->zimbra->request('CreateMountpointRequest', $attributes, $params, self::URN); + if ($grant->granteeType != GrantEntity::TYPE_USR){ + throw new Exception('L\'envoi de mail de notification ne fonctionne que si le partage se fait à un utilisateur'); + } + $this->createMountPoint($id, $grant->granteeName, '/'.$folder->getName().' de '.$this->getAccount()->displayName); break; } return $this; @@ -360,7 +339,7 @@ class Folder extends Service { * @param string $action * @retun self */ - public function removeGrant( $id, $accountId, $action=self::GRANT_ACTION_LINK ){ + public function revokeGrant( $id, $accountId, $action=self::GRANT_ACTION_LINK ){ if ($id instanceof FolderEntity){ $folder = $id; $id = $id->getId(); @@ -381,34 +360,133 @@ class Folder extends Service { switch( $action ){ case self::GRANT_ACTION_SENDMAIL: - /* Envoi d'un mail au destinataire pour la partage */ - if (empty($account)) $account = $this->zimbra->getAccountService ()->get($accountId,'id'); - $params = array( - 'item' => array( '@attributes' => array( 'id' => $id ) ), - 'e' => array( '@attributes' => array( 'a' => $account->getName() ) ), - ); - $attributes = array( - 'action' => 'revoke' - ); - $this->zimbra->request('SendShareNotificationRequest', $attributes, $params, self::URN); + /* Envoi d'un mail au destinataire pour le partage */ + if (empty($account)) $account = $this->zimbra->getAccountService()->get($accountId,'id'); + $this->sendRevokeNotification($id, $account); break; case self::GRANT_ACTION_LINK: /* Suppression automatique du lien vers le dossier partagé sur le destinataire en cas de partage de usr à usr uniquement */ if (empty($account)) $account = $this->zimbra->getAccountService ()->get($accountId,'id'); + $this->deleteMountPoint($id, $account); + break; + } + return $this; + } - $currentAccount = $this->account; - $this->account = $account->getName(); + /** + * Envoie un mail de notification de partage au destinataire + * + * $id = <b>Identifiant</b> de répertoire ou répertoire + * $account = <b>adresse mail</b> ou compte + * + * @param string|FolderEntity $id + * @param string|AccountEntity $account + * @return self + */ + public function sendGrantNotification($id, $account) + { + if ($id instanceof FolderEntity) $id = $id->getId(); + if ($account instanceof AccountEntity ) $account = $account->getName(); - $granteeLinks = $this->getLinkList(); - foreach( $granteeLinks as $link ){ - $fid = $link->getRemoteFolderId(); - if ($fid == $id) $this->action($link->getId(), 'delete', array()); - } + $params = array( + 'item' => array( '@attributes' => array( 'id' => $id ) ), + 'e' => array( '@attributes' => array( 'a' => $account ) ), + ); + $attributes = array( + 'action' => 'edit' + ); + $this->applyAccountContext(); + $this->zimbra->request('SendShareNotificationRequest', $attributes, $params, self::URN); + return $this; + } - $this->account = $currentAccount; - break; + /** + * Envoie un mail de notification de fin de partage au destinataire + * + * $id = <b>Identifiant</b> de répertoire ou répertoire + * $account = <b>adresse mail</b> ou compte + * + * @param string|FolderEntity $id + * @param string|AccountEntity $account + * @return self + */ + public function sendRevokeNotification($id, $account) + { + if ($id instanceof FolderEntity) $id = $id->getId(); + if ($account instanceof AccountEntity ) $account = $account->getName(); + + $params = array( + 'item' => array( '@attributes' => array( 'id' => $id ) ), + 'e' => array( '@attributes' => array( 'a' => $account ) ), + ); + $attributes = array( + 'action' => 'revoke' + ); + $this->applyAccountContext(); + $this->zimbra->request('SendShareNotificationRequest', $attributes, $params, self::URN); + return $this; + } + + /** + * Monte le partage sur le compte du destinataire + * + * $account = <b>adresse mail</b> ou compte + * + * @param string|FolderEntity $id + * @param string|AccountEntity $account + * @param string $absPath + * @return self + */ + public function createMountPoint($id, $account, $absPath) + { + if ($id instanceof FolderEntity) $id = $id->getId(); + + $currentAccount = $this->account; + $this->account = $account; + $destFolderParent = dirname( $absPath); + if ('.' == $destFolderParent) $destFolderParent = '/'; + $destFolderName = basename( $absPath ); + $destFolderParent = $this->get($destFolderParent); + $this->account = $currentAccount; + + $attributes = array(); + $params = array( + 'link' => array( '@attributes' => array( + 'name' => $destFolderName, + 'rid' => explode(':',$id)[1], + 'zid' => explode(':',$id)[0], + 'owner' => $this->getAccountName(), + 'l' => $destFolderParent->getId() + ) ) + ); + $this->applyAccountContext(); + $this->zimbra->request('CreateMountpointRequest', $attributes, $params, self::URN); + return $this; + } + + /** + * Démonte le partage sur le compte du destinataire + * + * $account = <b>adresse mail</b> ou compte + * + * @param string|FolderEntity $id + * @param string|AccountEntity $account + * @return self + */ + public function deleteMountPoint($id, $account) + { + if ($id instanceof FolderEntity) $id = $id->getId(); + + $currentAccount = $this->account; + $this->account = $account; + + $granteeLinks = $this->getLinkList(); + foreach( $granteeLinks as $link ){ + $fid = $link->getRemoteFolderId(); + if ($fid == $id) $this->action($link->getId(), 'delete', array()); } + $this->account = $currentAccount; return $this; } diff --git a/src/UnicaenZimbra/Service/Gal.php b/src/UnicaenZimbra/Service/Gal.php index 0ba262ac08eeb0f70f455ac6fcc8371174bcd502..7d00be0974aab0a6ea2daaa3bfaaeb1edb812743 100644 --- a/src/UnicaenZimbra/Service/Gal.php +++ b/src/UnicaenZimbra/Service/Gal.php @@ -15,9 +15,11 @@ class Gal extends Service { /** * Retourne la liste des boites mail - * + * + * @param string $domain + * @param string $name + * @param string $type * @param integer $limit - * @param integer $offset * @return GalEntity[] */ public function autoComplete( $domain, $name, $type='account', $limit=Zimbra::DEFAULT_LIMIT ) diff --git a/src/UnicaenZimbra/Service/Identity.php b/src/UnicaenZimbra/Service/Identity.php index 20a5af5bf14189d48b2f04ae0b78553cf268f55f..11b30382dbf7fe34450affdea464f6a5fdc8f29a 100644 --- a/src/UnicaenZimbra/Service/Identity.php +++ b/src/UnicaenZimbra/Service/Identity.php @@ -9,6 +9,7 @@ namespace UnicaenZimbra\Service; use UnicaenZimbra\Entity\Identity as IdentityEntity; +use UnicaenZimbra\Entity\Account as AccountEntity; use UnicaenZimbra\Zimbra; use Exception; diff --git a/src/UnicaenZimbra/Zimbra.php b/src/UnicaenZimbra/Zimbra.php index 10d35af126f0c382aad3a7d323dab4ccb5f9f4de..e57b05a02cc84fb451ff660d8b2e1904214c935c 100644 --- a/src/UnicaenZimbra/Zimbra.php +++ b/src/UnicaenZimbra/Zimbra.php @@ -754,6 +754,7 @@ class Zimbra implements ServiceManagerAwareInterface case 'galService': return $this->getGalService(); case 'folderService': return $this->getFolderService(); case 'filterService': return $this->getFilterService(); + case 'identityService': return $this->getIdentityService(); default: throw new Exception('Propriété "'.$name.'" inconnue.'); }; } diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php index a2af5e8d941d03cb838527f3612364c92d3d4bdf..8f5c9aff714377e41cde5a04a9c496ec14386483 100644 --- a/tests/Bootstrap.php +++ b/tests/Bootstrap.php @@ -6,6 +6,7 @@ use Zend\Mvc\Service\ServiceManagerConfig; use Zend\ServiceManager\ServiceManager; use RuntimeException; + error_reporting(E_ALL | E_STRICT); chdir(__DIR__); @@ -14,6 +15,10 @@ chdir(__DIR__); */ class Bootstrap { + /** + * + * @var ServiceManager + */ protected static $serviceManager; public static function init() @@ -29,7 +34,11 @@ class Bootstrap static::initAutoloader(); - static::$serviceManager = new ServiceManager(new ServiceManagerConfig()); + // use ModuleManager to load this module and it's dependencies + $serviceManager = new ServiceManager(new ServiceManagerConfig()); + $serviceManager->setService('ApplicationConfig', require_once './config/application.config.php'); + $serviceManager->get('ModuleManager')->loadModules(); + static::$serviceManager = $serviceManager; } public static function getServiceManager() diff --git a/tests/ModulesTest/ServiceManagerGrabber.php b/tests/ModulesTest/ServiceManagerGrabber.php new file mode 100644 index 0000000000000000000000000000000000000000..4b5da27ffef81961b4093cd69df8c27ea7eed671 --- /dev/null +++ b/tests/ModulesTest/ServiceManagerGrabber.php @@ -0,0 +1,29 @@ +<?php + +namespace ModulesTests; + +use Zend\ServiceManager\ServiceManager; +use Zend\Mvc\Service\ServiceManagerConfig; + +class ServiceManagerGrabber +{ + protected static $serviceConfig = null; + + public static function setServiceConfig($config) + { + static::$serviceConfig = $config; + } + + public function getServiceManager() + { + $configuration = static::$serviceConfig ? : require_once './config/application.config.php'; + + $smConfig = isset($configuration['service_manager']) ? $configuration['service_manager'] : array(); + $serviceManager = new ServiceManager(new ServiceManagerConfig($smConfig)); + $serviceManager->setService('ApplicationConfig', $configuration); + + $serviceManager->get('ModuleManager')->loadModules(); + + return $serviceManager; + } +} \ No newline at end of file diff --git a/tests/UnicaenZimbraTest/BaseServiceTest.php b/tests/UnicaenZimbraTest/BaseServiceTest.php deleted file mode 100644 index ec61ee29642cfaf4e81c114ef5acba14a9bfc488..0000000000000000000000000000000000000000 --- a/tests/UnicaenZimbraTest/BaseServiceTest.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -namespace UnicaenZimbraTest; - -use PHPUnit_Framework_TestCase; - -abstract class BaseServiceTest extends PHPUnit_Framework_TestCase -{ - /** - * @var \UnicaenZimbra\Zimbra - */ - protected $zimbra; - - /** - * - * @var \UnicaenZimbra\Options\ModuleOptions - */ - protected $zimbraModuleOptions; - - protected $config = array( - 'server' => 'zimbra-pp.unicaen.fr', - 'port' => 7071, - 'email' => 'david.surville@pp.unicaen.fr', - 'password' => 'Zimbra14', - 'domain' => 'pp.unicaen.fr', - ); - - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $serviceManager; - - protected function setUp() - { - $this->zimbraModuleOptions = $zimbraModuleOptions = new \UnicaenZimbra\Options\ModuleOptions($this->config); - - $this->serviceManager = $serviceManager = $this->getMock('Zend\ServiceManager\ServiceManager', array('get')); - $serviceManager->expects($this->any()) - ->method('get') - ->will($this->returnCallback(function($serviceName) use ($zimbraModuleOptions) { - if ('UnicaenZimbra\Options\ModuleOptions' === $serviceName) { - return $zimbraModuleOptions; - } - return null; - })); - - $this->zimbra = new \UnicaenZimbra\Zimbra(); - $this->zimbra->setServiceManager($serviceManager); - - $this->zimbra->connect(); - } -} \ No newline at end of file diff --git a/tests/UnicaenZimbraTest/Service/AccountTest.php b/tests/UnicaenZimbraTest/Service/AccountTest.php index 2328bcf27672089e99b17791e3b102e8655556e7..cb4a5dbeb6be07d7bc38254ee23db4dbeeda2ffc 100644 --- a/tests/UnicaenZimbraTest/Service/AccountTest.php +++ b/tests/UnicaenZimbraTest/Service/AccountTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Account; use UnicaenZimbra\Entity\Account as AccountEntity; /** * @group Account */ -class AccountTest extends \UnicaenZimbraTest\BaseServiceTest +class AccountTest extends PHPUnit_Framework_TestCase { /** * @@ -26,8 +27,10 @@ class AccountTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getAccountService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getAccountService(); } public function testCreate() diff --git a/tests/UnicaenZimbraTest/Service/AliasTest.php b/tests/UnicaenZimbraTest/Service/AliasTest.php index fb220b4e947f40c9b3c25d4dcfa9bba0cf1c1b3f..8e73f689d8d7a5bb4f3298fddea0338c324126e2 100644 --- a/tests/UnicaenZimbraTest/Service/AliasTest.php +++ b/tests/UnicaenZimbraTest/Service/AliasTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Alias; use UnicaenZimbra\Entity\Alias as AliasEntity; /** * @group Alias */ -class AliasTest extends \UnicaenZimbraTest\BaseServiceTest +class AliasTest extends PHPUnit_Framework_TestCase { /** * @@ -23,8 +24,10 @@ class AliasTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getAliasService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getAliasService(); } public function testExists() @@ -46,4 +49,15 @@ class AliasTest extends \UnicaenZimbraTest\BaseServiceTest $this->assertEquals($id, $res[$id]->getId()); $this->assertEquals($name, $res[$id]->getName()); } + + public function testGet() + { + $id = $this->data['id']; + $name = $this->data['name']; + + $alias = $this->service->get( $name ); + $this->assertInstanceOf('\UnicaenZimbra\Entity\Alias', $alias); + $this->assertEquals($id, $alias->getId()); + $this->assertEquals($name, $alias->getName()); + } } \ No newline at end of file diff --git a/tests/UnicaenZimbraTest/Service/CosTest.php b/tests/UnicaenZimbraTest/Service/CosTest.php index dbcf56286f4618e3c405c27c5d492cded1315948..04710f7f4a055ee7587d73459a03c26b34be7414 100644 --- a/tests/UnicaenZimbraTest/Service/CosTest.php +++ b/tests/UnicaenZimbraTest/Service/CosTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Cos; use UnicaenZimbra\Entity\Cos as CosEntity; /** * @group Cos */ -class CosTest extends \UnicaenZimbraTest\BaseServiceTest +class CosTest extends PHPUnit_Framework_TestCase { /** * @@ -23,8 +24,10 @@ class CosTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getCosService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getCosService(); } public function testExists() diff --git a/tests/UnicaenZimbraTest/Service/DistributionListTest.php b/tests/UnicaenZimbraTest/Service/DistributionListTest.php index 1306671bef538b862ec4b642196f125055749f50..fa97e0d83ba1245db6d6ec35430c8646879cfc70 100644 --- a/tests/UnicaenZimbraTest/Service/DistributionListTest.php +++ b/tests/UnicaenZimbraTest/Service/DistributionListTest.php @@ -2,6 +2,7 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\DistributionList; use UnicaenZimbra\Entity\DistributionList as DistributionListEntity; use UnicaenZimbra\Entity\Account as AccountEntity; @@ -9,7 +10,7 @@ use UnicaenZimbra\Entity\Account as AccountEntity; /** * @group DistributionList */ -class DistributionListTest extends \UnicaenZimbraTest\BaseServiceTest +class DistributionListTest extends PHPUnit_Framework_TestCase { /** * @@ -31,8 +32,10 @@ class DistributionListTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getDistributionListService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getDistributionListService(); } public function testCreate() diff --git a/tests/UnicaenZimbraTest/Service/DomainTest.php b/tests/UnicaenZimbraTest/Service/DomainTest.php index d4475a216d6927fa4bd60b3049134eec777783c3..cbf5b1e312aa486ade1c1c860cff4fadb6e6ef40 100644 --- a/tests/UnicaenZimbraTest/Service/DomainTest.php +++ b/tests/UnicaenZimbraTest/Service/DomainTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Domain; use UnicaenZimbra\Entity\Domain as DomainEntity; /** * @group Domain */ -class DomainTest extends \UnicaenZimbraTest\BaseServiceTest +class DomainTest extends PHPUnit_Framework_TestCase { /** * @@ -23,8 +24,10 @@ class DomainTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getDomainService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getDomainService(); } public function testExists() diff --git a/tests/UnicaenZimbraTest/Service/FilterTest.php b/tests/UnicaenZimbraTest/Service/FilterTest.php index 1fe5532df5839973566cd615ee299ba7fe4f2cf9..ee49404e80268cd87c9eb3acdfdb19c415fe26ab 100644 --- a/tests/UnicaenZimbraTest/Service/FilterTest.php +++ b/tests/UnicaenZimbraTest/Service/FilterTest.php @@ -2,6 +2,7 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Filter; use UnicaenZimbra\Entity\Filter\Filter as FilterEntity; use UnicaenZimbra\Entity\Filter\Test\Header as FilterTestHeader; @@ -11,7 +12,7 @@ use UnicaenZimbra\Entity\Filter\Action\Stop as FilterActionStop; /** * @group Filter */ -class FilterTest extends \UnicaenZimbraTest\BaseServiceTest +class FilterTest extends PHPUnit_Framework_TestCase { /** * @@ -25,8 +26,10 @@ class FilterTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getFilterService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getFilterService(); $this->service->setAccount( $this->data['accountName'] ); $filter = new FilterEntity; @@ -84,6 +87,27 @@ class FilterTest extends \UnicaenZimbraTest\BaseServiceTest $this->service->setInput( $oriInput ); } + public function testCreateDeleteInput() + { + $filter = $this->data['filters']['test-unitaire']; + + $oriInput = $this->service->getInput(); + + $this->service->createInput( $filter ); + $filters = $this->service->getInput(); + + $this->assertArrayHasKey('test-unitaire', $filters); + + + $this->service->deleteInput($filter->getName()); + $filters = $this->service->getInput(); + + $this->assertArrayNotHasKey('test-unitaire', $filters); + + // Restauration de l'état antérieur + $this->service->setInput( $oriInput ); + } + public function testOutput() { $oriOutput = $this->service->getOutput(); @@ -98,6 +122,25 @@ class FilterTest extends \UnicaenZimbraTest\BaseServiceTest $this->service->setOutput( $oriOutput ); } + public function testCreateDeleteOutput() + { + $filter = $this->data['filters']['test-unitaire']; + + $oriOutput = $this->service->getOutput(); + + $this->service->createOutput( $filter ); + $filters = $this->service->getOutput(); + + $this->assertArrayHasKey('test-unitaire', $filters); + + $this->service->deleteOutput($filter->getName()); + $filters = $this->service->getOutput(); + + $this->assertArrayNotHasKey('test-unitaire', $filters); + + // Restauration de l'état antérieur + $this->service->setOutput( $oriOutput ); + } public function saveAndAssertEqualInputFilterTest( array $filters ) { @@ -111,7 +154,6 @@ class FilterTest extends \UnicaenZimbraTest\BaseServiceTest return $actual; } - public function assertEqualFilters( FilterEntity $expected, FilterEntity $actual ) { $this->assertEquals($expected, $actual); diff --git a/tests/UnicaenZimbraTest/Service/FolderTest.php b/tests/UnicaenZimbraTest/Service/FolderTest.php index 5d745dddebf9ef2fe9fc240c5c527302ba5c6ca2..350fe9a9085a8968a991723053e40cd020d1276a 100644 --- a/tests/UnicaenZimbraTest/Service/FolderTest.php +++ b/tests/UnicaenZimbraTest/Service/FolderTest.php @@ -2,6 +2,7 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Folder; use UnicaenZimbra\Entity\Folder as FolderEntity; use UnicaenZimbra\Entity\Grant as GrantEntity; @@ -9,7 +10,7 @@ use UnicaenZimbra\Entity\Grant as GrantEntity; /** * @group Folder */ -class FolderTest extends \UnicaenZimbraTest\BaseServiceTest +class FolderTest extends PHPUnit_Framework_TestCase { /** * @@ -17,6 +18,12 @@ class FolderTest extends \UnicaenZimbraTest\BaseServiceTest */ protected $service; + /** + * + * @var \UnicaenZimbra\Zimbra + */ + protected $zimbra; + protected $data = array( 'accountName' => 'laurent.lecluse@pp.unicaen.fr', 'absFolderPath' => '/Inbox/Tests Unitaires/Essai1.1/Essai2.1', @@ -25,8 +32,11 @@ class FolderTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getFolderService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->zimbra = $zimbra; + $this->service = $zimbra->getFolderService(); $this->service->setAccount( $this->data['accountName'] ); } @@ -130,12 +140,12 @@ class FolderTest extends \UnicaenZimbraTest\BaseServiceTest * @depends testGet * @param \UnicaenZimbra\Entity\Folder $folder */ - public function testRemoveGrant( FolderEntity $folder) + public function testRevokeGrant( FolderEntity $folder) { $granteeName = 'laurent.lecluse2@pp.unicaen.fr'; $account = $this->zimbra->getAccountService()->get($granteeName); - $this->service->removeGrant($folder, $account); + $this->service->revokeGrant($folder, $account); $acl = $folder->getAcl(); $this->assertArrayNotHasKey($account->getId(), $acl); // Vérifie que le dossier a bien son ACL mise à jour ... diff --git a/tests/UnicaenZimbraTest/Service/GalTest.php b/tests/UnicaenZimbraTest/Service/GalTest.php index 84a763d94326b6438d16a70d6a6b054085f2834c..0ad4323be5c76a45ef63dece0bc189737c7e751d 100644 --- a/tests/UnicaenZimbraTest/Service/GalTest.php +++ b/tests/UnicaenZimbraTest/Service/GalTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Gal; use UnicaenZimbra\Entity\Gal as GalEntity; /** * @group Gal */ -class GalTest extends \UnicaenZimbraTest\BaseServiceTest +class GalTest extends PHPUnit_Framework_TestCase { /** * @@ -26,8 +27,10 @@ class GalTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getGalService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getGalService(); } public function testAutocomplete() diff --git a/tests/UnicaenZimbraTest/Service/IdentityTest.php b/tests/UnicaenZimbraTest/Service/IdentityTest.php index d49f599d0b6e452d5ea85a3aae6f2aafc71fa961..df88010cbdb698a7e4becfc81db4657a75db3b4e 100644 --- a/tests/UnicaenZimbraTest/Service/IdentityTest.php +++ b/tests/UnicaenZimbraTest/Service/IdentityTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Identity; use UnicaenZimbra\Entity\Identity as IdentityEntity; /** * @group Identity */ -class IdentityTest extends \UnicaenZimbraTest\BaseServiceTest +class IdentityTest extends PHPUnit_Framework_TestCase { /** * @@ -25,8 +26,10 @@ class IdentityTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getIdentityService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getIdentityService(); $this->service->setAccount( $this->data['accountName'] ); } diff --git a/tests/UnicaenZimbraTest/Service/MailBoxTest.php b/tests/UnicaenZimbraTest/Service/MailBoxTest.php index 213ddebf7f1f1698abac86419f226449cbb422f4..b3c4333610b7cc0a6aab226ae3ea70b6a6c27a8e 100644 --- a/tests/UnicaenZimbraTest/Service/MailBoxTest.php +++ b/tests/UnicaenZimbraTest/Service/MailBoxTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\MailBox; use UnicaenZimbra\Entity\MailBox as MailBoxEntity; /** * @group MailBox */ -class MailBoxTest extends \UnicaenZimbraTest\BaseServiceTest +class MailBoxTest extends PHPUnit_Framework_TestCase { /** * @@ -22,8 +23,10 @@ class MailBoxTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getMailBoxService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getMailBoxService(); } public function testGetList() diff --git a/tests/UnicaenZimbraTest/Service/ResourceTest.php b/tests/UnicaenZimbraTest/Service/ResourceTest.php index e512151c07ec144ee429dc473d4fd475f67aa737..f21557bc6cf4617c80d361d9d1005135718f258b 100644 --- a/tests/UnicaenZimbraTest/Service/ResourceTest.php +++ b/tests/UnicaenZimbraTest/Service/ResourceTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Resource; use UnicaenZimbra\Entity\Resource as ResourceEntity; /** * @group Resource */ -class ResourceTest extends \UnicaenZimbraTest\BaseServiceTest +class ResourceTest extends PHPUnit_Framework_TestCase { /** * @@ -24,8 +25,10 @@ class ResourceTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getResourceService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getResourceService(); } public function testCreate() diff --git a/tests/UnicaenZimbraTest/Service/ServerTest.php b/tests/UnicaenZimbraTest/Service/ServerTest.php index 40616f2d5f16cd8e5ee6d6844878e7095b690580..5a762ded955d9085cca5a053ad4a3e29ab35fb4d 100644 --- a/tests/UnicaenZimbraTest/Service/ServerTest.php +++ b/tests/UnicaenZimbraTest/Service/ServerTest.php @@ -2,13 +2,14 @@ namespace UnicaenZimbraTest\Service; +use PHPUnit_Framework_TestCase; use UnicaenZimbra\Service\Server; use UnicaenZimbra\Entity\Server as ServerEntity; /** * @group Server */ -class ServerTest extends \UnicaenZimbraTest\BaseServiceTest +class ServerTest extends PHPUnit_Framework_TestCase { /** * @@ -23,8 +24,10 @@ class ServerTest extends \UnicaenZimbraTest\BaseServiceTest protected function setUp() { - parent::setUp(); - $this->service = $this->zimbra->getServerService(); + $zimbra = new \UnicaenZimbra\Zimbra(); + $zimbra->setServiceManager( \UnicaenZimbraTest\Bootstrap::getServiceManager() ); + $zimbra->connect(); + $this->service = $zimbra->getServerService(); } public function testGetList() diff --git a/tests/UnicaenZimbraTest/ZimbraTest.php b/tests/UnicaenZimbraTest/ZimbraTest.php index feb2d84066ef3dc113503e19f5ca9fe844b6b0ff..83cfcc4de8d4bd90ba570ce79710ce564b83daaa 100644 --- a/tests/UnicaenZimbraTest/ZimbraTest.php +++ b/tests/UnicaenZimbraTest/ZimbraTest.php @@ -18,39 +18,21 @@ class ZimbraTest extends PHPUnit_Framework_TestCase 'id' => '01d13c21-2d2c-45f9-9df0-9bee295b3542' // laurent.lecluse@pp.unicaen.fr ); - /** - * - * @var \UnicaenZimbra\Options\ModuleOptions - */ - protected $zimbraModuleOptions; - - protected $config = array( - 'server' => 'zimbra-pp.unicaen.fr', - 'port' => 7071, - 'email' => 'david.surville@pp.unicaen.fr', - 'password' => 'Zimbra14', - 'domain' => 'pp.unicaen.fr', - ); - protected $services = array( 'account', 'alias', + 'cos', 'distributionList', - 'resource', 'domain', - 'cos', - 'server', - 'mailBox', - 'gal', - 'folder', 'filter', + 'folder', + 'gal', + 'identity', + 'mailBox', + 'resource', + 'server', ); - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $serviceManager; - public function servicesProvider() { $result = array(); @@ -62,21 +44,8 @@ class ZimbraTest extends PHPUnit_Framework_TestCase protected function setUp() { - $this->zimbraModuleOptions = $zimbraModuleOptions = new \UnicaenZimbra\Options\ModuleOptions($this->config); - - $this->serviceManager = $serviceManager = $this->getMock('Zend\ServiceManager\ServiceManager', array('get')); - $serviceManager->expects($this->any()) - ->method('get') - ->will($this->returnCallback(function($serviceName) use ($zimbraModuleOptions) { - if ('UnicaenZimbra\Options\ModuleOptions' === $serviceName) { - return $zimbraModuleOptions; - } - return null; - })); - $this->zimbra = new \UnicaenZimbra\Zimbra(); - $this->zimbra->setServiceManager($serviceManager); - + $this->zimbra->setServiceManager(Bootstrap::getServiceManager()); $this->zimbra->connect(); } diff --git a/tests/config/application.config.php b/tests/config/application.config.php index caad13f10b0e97cf6066bae4d0accd24cbb38e48..8e663f7d0ae36fea5cb7ef8137f3b39efd080b24 100644 --- a/tests/config/application.config.php +++ b/tests/config/application.config.php @@ -1,4 +1,5 @@ <?php + // Application config $appConfig = array();//include __DIR__ . '/../../../../../config/application.config.php'; @@ -14,4 +15,4 @@ $testConfig = array( ), ); -return \Zend\Stdlib\ArrayUtils::merge($appConfig, $testConfig); +return \Zend\Stdlib\ArrayUtils::merge($appConfig, $testConfig); \ No newline at end of file diff --git a/tests/config/autoload/global.php b/tests/config/autoload/global.php index b741c81d89e33c438d527e00a1ba580250dd00f8..d266508bcd79f592795600fda075aa0b3c25caae 100644 --- a/tests/config/autoload/global.php +++ b/tests/config/autoload/global.php @@ -1,18 +1,2 @@ <?php -return array( -// 'translator' => array( -// 'locale' => 'fr_FR', -// 'translation_file_patterns' => array( -// array( -// 'type' => 'getdtext', -// 'base_dir' => __DIR__ . '/../language', -// 'pattern' => '%s.mo', -// ), -// ), -// ), - 'controllers' => array( - 'invokables' => array( -// 'UnicaenZimbraTest\Controller\Plugin\TestAsset\Contact' => 'UnicaenAppTest\Controller\Plugin\TestAsset\ContactController', - ), - ), -); +return array(); diff --git a/tests/config/autoload/unicaen-zimbra.global.php b/tests/config/autoload/unicaen-zimbra.global.php index 6a6c60acd1b527fd407aa399d3636117388117d9..43d9c7ca71f014ff9fa0c7b7f6efdebc8ae7abf3 100644 --- a/tests/config/autoload/unicaen-zimbra.global.php +++ b/tests/config/autoload/unicaen-zimbra.global.php @@ -6,7 +6,11 @@ * drop this config file in it and change the values as you wish. */ $settings = array( - + 'server' => 'wzstore01.unicaen.fr', + 'port' => 7071, + 'email' => 'adminsoap@unicaen.fr', + 'password' => 'ZsIoMaBpRa', + 'domain' => 'unicaen.fr', ); /** diff --git a/tests/config/autoload/unicaen-zimbra.local.php.dist b/tests/config/autoload/unicaen-zimbra.local.php.dist index f0643e58894af94e4e99b6c47aa4782ca1cca992..16cbc69d2d511d7fc08b80f553f227458830f29f 100644 --- a/tests/config/autoload/unicaen-zimbra.local.php.dist +++ b/tests/config/autoload/unicaen-zimbra.local.php.dist @@ -6,6 +6,11 @@ * drop this config file in it and change the values as you wish. */ $settings = array( + 'server' => 'zimbra-pp.unicaen.fr', + 'port' => 7071, + 'email' => 'david.surville@pp.unicaen.fr', + 'password' => 'Zimbra14', + 'domain' => 'pp.unicaen.fr', ); /**