From 90a03c06000f904ca36fc40c98ce931344f2cc5c Mon Sep 17 00:00:00 2001 From: Gunnar Wrobel
Date: Mon, 22 Mar 2010 17:20:05 +0100 Subject: [PATCH] Test each driver. --- .../test/Horde/Kolab/Storage/NamespaceTest.php | 225 +++++++++++++-------- 1 file changed, 139 insertions(+), 86 deletions(-) diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php index 519cb6a3b..f2de7d43e 100644 --- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php +++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php @@ -40,181 +40,234 @@ class Horde_Kolab_Storage_NamespaceTest extends PHPUnit_Framework_TestCase public function testFolderTitleIsEmptyForPrivateNamespace() { - $folder = new Horde_Kolab_Storage_Folder('INBOX'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('', $folder->getTitle()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('INBOX'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('', $folder->getTitle()); + } } public function testFolderTitleDoesNotContainPrivateNamespace() { - $folder = new Horde_Kolab_Storage_Folder('INBOX/test'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test', $folder->getTitle()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('INBOX/test'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test', $folder->getTitle()); + } } public function testFolderTitleOfOtherUserDoesNotContainUserPrefixAndOtherUserName() { - $folder = new Horde_Kolab_Storage_Folder('user/test/his_folder'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('his_folder', $folder->getTitle()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('user/test/his_folder'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('his_folder', $folder->getTitle()); + } } public function testFolderTitleReplacesSeparatorWithDoubleColon() { - $folder = new Horde_Kolab_Storage_Folder('INBOX/test/sub'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test:sub', $folder->getTitle()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('INBOX/test/sub'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test:sub', $folder->getTitle()); + } } public function testFolderTitleConvertsUtf7() { Horde_Nls::setCharset('UTF8'); - $name = Horde_String::convertCharset('äöü', 'UTF8', 'UTF7-IMAP'); - $folder = new Horde_Kolab_Storage_Folder('INBOX/' . $name); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('äöü', $folder->getTitle()); + foreach ($this->_getNamespaces() as $namespace) { + $name = Horde_String::convertCharset('äöü', 'UTF8', 'UTF7-IMAP'); + $folder = new Horde_Kolab_Storage_Folder('INBOX/' . $name); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('äöü', $folder->getTitle()); + } } public function testFolderTitleIsAccessibleForNewFolders() { - $_SESSION['horde_auth']['userId'] = 'test'; - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('test'); - $this->assertEquals('test', $folder->getTitle()); + foreach ($this->_getNamespaces() as $namespace) { + $_SESSION['horde_auth']['userId'] = 'test'; + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('test'); + $this->assertEquals('test', $folder->getTitle()); + } } public function testFolderOwnerIsCurrentUserIfPrefixMatchesPrivateNamespace() { - $_SESSION['horde_auth']['userId'] = 'test'; - $folder = new Horde_Kolab_Storage_Folder('INBOX'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $_SESSION['horde_auth']['userId'] = 'test'; + $folder = new Horde_Kolab_Storage_Folder('INBOX'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test', $folder->getOwner()); + } } public function testFolderOwnerIsCurrentUserIfPrefixContainsPrivateNamespace() { - $_SESSION['horde_auth']['userId'] = 'test'; - $folder = new Horde_Kolab_Storage_Folder('INBOX/mine'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $_SESSION['horde_auth']['userId'] = 'test'; + $folder = new Horde_Kolab_Storage_Folder('INBOX/mine'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test', $folder->getOwner()); + } } public function testFolderOwnerIsOtherUserIfPrefixMatchesOtherNamespace() { - $folder = new Horde_Kolab_Storage_Folder('user/test'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('user/test'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test', $folder->getOwner()); + } } public function testFolderOwnerIsOtherUserIfPrefixContainsOtherNamespace() { - $folder = new Horde_Kolab_Storage_Folder('user/test/mine'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('user/test/mine'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test', $folder->getOwner()); + } } public function testFolderOwnerIsAnonymousIfPrefixContainsSharedNamespace() { - $folder = new Horde_Kolab_Storage_Folder('shared.test'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('anonymous', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('shared.test'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('anonymous', $folder->getOwner()); + } } public function testFolderOwnerIsAccessibleForNewFolders() { - $_SESSION['horde_auth']['userId'] = 'test'; - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('test'); - $this->assertEquals('test', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $_SESSION['horde_auth']['userId'] = 'test'; + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('test'); + $this->assertEquals('test', $folder->getOwner()); + } } public function testFolderOwnerHasDomainFromFolderDomain() { - $_SESSION['horde_auth']['userId'] = 'test@example.com'; - $folder = new Horde_Kolab_Storage_Folder('user/test/mine'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test@example.com', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $_SESSION['horde_auth']['userId'] = 'test@example.com'; + $folder = new Horde_Kolab_Storage_Folder('user/test/mine'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test@example.com', $folder->getOwner()); + } } public function testFolderOwnerHasDomainFromCurrentUserIfNoFolderDomain() { - $folder = new Horde_Kolab_Storage_Folder('user/test/mine@example.com'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('test@example.com', $folder->getOwner()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('user/test/mine@example.com'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('test@example.com', $folder->getOwner()); + } } public function testSetnameDoesAddDefaultPersonalNamespace() { - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('test:this'); - $this->assertEquals('INBOX/test/this', $folder->getName()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('test:this'); + $this->assertEquals('INBOX/test/this', $folder->getName()); + } } public function testSetnameReplacesDoubleColonWithSeparator() { - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('a:b:c'); - $this->assertEquals('INBOX/a/b/c', $folder->getName()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('a:b:c'); + $this->assertEquals('INBOX/a/b/c', $folder->getName()); + } } public function testSetnameConvertsToUtf7() { Horde_Nls::setCharset('UTF8'); - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('äöü'); - $this->assertEquals( - 'INBOX/äöü', - Horde_String::convertCharset($folder->getName(), 'UTF7-IMAP', 'UTF8') - ); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('äöü'); + $this->assertEquals( + 'INBOX/äöü', + Horde_String::convertCharset($folder->getName(), 'UTF7-IMAP', 'UTF8') + ); + } } public function testSetnameAllowsCreatingFoldersInSharedNamespace() { - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('shared.test'); - $this->assertEquals('shared.test', $folder->getName()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('shared.test'); + $this->assertEquals('shared.test', $folder->getName()); + } } public function testSetnameAllowsCreatingFoldersInOthersNamespace() { - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('user:test:test'); - $this->assertEquals('user/test/test', $folder->getName()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('user:test:test'); + $this->assertEquals('user/test/test', $folder->getName()); + } } public function testFolderSubpathIsAccessibleForNewFolders() { - $folder = new Horde_Kolab_Storage_Folder(null); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $folder->setName('test'); - $this->assertEquals('test', $folder->getSubpath()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder(null); + $folder->restore($this->_storage, $this->_connection, $namespace); + $folder->setName('test'); + $this->assertEquals('test', $folder->getSubpath()); + } } public function testFolderSubpathDoesNotContainUsernameIfPrefixContainsOtherNamespace() { - $folder = new Horde_Kolab_Storage_Folder('user/test/mine'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('mine', $folder->getSubpath()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('user/test/mine'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('mine', $folder->getSubpath()); + } } public function testFolderSubpathReturnsSubpathWithoutNamespacePrefix() { - $folder = new Horde_Kolab_Storage_Folder('INBOX/a/b'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('a/b', $folder->getSubpath()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('INBOX/a/b'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('a/b', $folder->getSubpath()); + } } public function testFolderSubpathReturnsSubpathWithoutSharedPrefix() { - $folder = new Horde_Kolab_Storage_Folder('shared.a/b'); - $folder->restore($this->_storage, $this->_connection, new Horde_Kolab_Storage_Namespace_Fixed()); - $this->assertEquals('a/b', $folder->getSubpath()); + foreach ($this->_getNamespaces() as $namespace) { + $folder = new Horde_Kolab_Storage_Folder('shared.a/b'); + $folder->restore($this->_storage, $this->_connection, $namespace); + $this->assertEquals('a/b', $folder->getSubpath()); + } + } + + private function _getNamespaces() + { + return array( + new Horde_Kolab_Storage_Namespace_Fixed() + ); } } \ No newline at end of file -- 2.11.0