Test each driver.
authorGunnar Wrobel <p@rdus.de>
Mon, 22 Mar 2010 16:20:05 +0000 (17:20 +0100)
committerGunnar Wrobel <wrobel@temple.(none)>
Tue, 23 Mar 2010 06:53:32 +0000 (07:53 +0100)
framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php

index 519cb6a..f2de7d4 100644 (file)
@@ -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