Description: Adapt to PHPUnit 8.x and 9.x API.
Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>

--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/FileTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/FileTest.php
@@ -24,6 +24,8 @@
 
     public function testCreateFolder()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_createFolderStructure();
     }
 
@@ -32,6 +34,8 @@
      */
     public function testWriteData()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_writeData();
     }
 
@@ -40,6 +44,8 @@
      */
     public function testWrite()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_write();
     }
 
@@ -171,12 +177,11 @@
         $this->_listFolder();
     }
 
-    /**
-     * @expectedException Horde_Vfs_Exception
-     * @expectedExceptionMessage Unable to access VFS directory root.
-     */
     public function testListFolderWithoutPermissions()
     {
+        $this->expectException('Horde_Vfs_Exception');
+        $this->expectExceptionMessage('Unable to access VFS directory root.');
+
         if (!is_dir('/root')) {
             $this->markTestSkipped('No /root folder to test permissions.');
         }
@@ -203,17 +208,17 @@
         $this->assertFileExists($path);
         $this->assertStringEqualsFile($path, 'some content');
         self::$vfs->delete($dir, $file);
-        $this->assertFileNotExists($path);
+        $this->assertFileDoesNotExist($path);
     }
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         self::$vfs = Horde_Vfs::factory('File', array(
             'vfsroot' => sys_get_temp_dir() . '/vfsfiletest'
         ));
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         system('rm -r ' . sys_get_temp_dir() . '/vfsfiletest');
         parent::tearDownAfterClass();
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/FtpTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/FtpTest.php
@@ -22,6 +22,8 @@
 
     public function testCreateFolder()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_createFolderStructure();
     }
 
@@ -30,6 +32,8 @@
      */
     public function testWriteData()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_writeData();
     }
 
@@ -38,6 +42,8 @@
      */
     public function testWrite()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_write();
     }
 
@@ -170,7 +176,7 @@
         $this->_nullRoot();
     }
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('ftp')) {
             self::$reason = 'No ftp extension';
@@ -184,7 +190,7 @@
         }
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         if (self::$vfs) {
             try {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/KolabTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/KolabTest.php
@@ -25,7 +25,7 @@
  * @author     Gunnar Wrobel <wrobel@pardus.de>
  * @license    http://www.horde.org/licenses/lgpl21 LGPL 2.1
  */
-class Horde_Vfs_KolabTest extends PHPUnit_Framework_TestCase
+class Horde_Vfs_KolabTest extends Horde_Test_Case
 {
 
     /**
@@ -33,7 +33,7 @@
      *
      * @return NULL
      */
-    public function setUp()
+    public function setUp(): void
     {
         $this->markTestIncomplete('Convert to Horde4');
 
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/MongoTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/MongoTest.php
@@ -34,6 +34,8 @@
 
     public function testCreateFolder()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_createFolderStructure();
     }
 
@@ -42,6 +44,8 @@
      */
     public function testWriteData()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_writeData();
     }
 
@@ -50,6 +54,8 @@
      */
     public function testWrite()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_write();
     }
 
@@ -186,7 +192,7 @@
         $this->_nullRoot();
     }
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (($config = self::getConfig('VFS_MONGO_TEST_CONFIG', __DIR__)) &&
             isset($config['vfs']['mongo']['hostspec'])) {
@@ -206,7 +212,7 @@
         }
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         if (!empty(self::$_mongo)) {
             self::$_mongo->selectDB(null)->drop();
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SmbTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SmbTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_SmbTest extends Horde_Vfs_TestBase
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         $config = self::getConfig('VFS_SMB_TEST_CONFIG', __DIR__);
         if ($config && !empty($config['vfs']['smb'])) {
@@ -29,7 +29,7 @@
         }
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         if (self::$vfs) {
             try {
@@ -41,7 +41,7 @@
         parent::tearDownAfterClass();
     }
 
-    public function setUp()
+    public function setUp(): void
     {
         parent::setUp();
 
@@ -49,7 +49,7 @@
         date_default_timezone_set('Europe/Berlin');
     }
 
-    public function tearDown()
+    public function tearDown(): void
     {
         date_default_timezone_set($this->_oldTimezone);
     }
@@ -61,6 +61,8 @@
 
     public function testCreateFolder()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_createFolderStructure();
     }
 
@@ -69,6 +71,8 @@
      */
     public function testWriteData()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_writeData();
     }
 
@@ -77,6 +81,8 @@
      */
     public function testWrite()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_write();
     }
 
@@ -226,7 +232,7 @@
         $vfs = new Horde_Vfs_Smb();
 
         $listing = $vfs->parseListing(file(__DIR__ . '/fixtures/samba1.txt'), null, true, false);
-        $this->assertInternalType('array', $listing);
+        $this->assertIsArray($listing);
         $this->assertEquals(7, count($listing));
         $this->assertEquals(
             array (
@@ -304,7 +310,7 @@
             $listing);
 
         $listing = $vfs->parseListing(file(__DIR__ . '/fixtures/samba2.txt'), null, true, false);
-        $this->assertInternalType('array', $listing);
+        $this->assertIsArray($listing);
         $this->assertEquals(26, count($listing));
         $this->assertEquals(
             array (
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Base.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Base.php
@@ -21,6 +21,8 @@
 
     public function testCreateFolder()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_createFolderStructure();
     }
 
@@ -29,6 +31,8 @@
      */
     public function testWriteData()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_writeData();
     }
 
@@ -37,6 +41,8 @@
      */
     public function testWrite()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_write();
     }
 
@@ -164,7 +170,7 @@
         $this->_nullRoot();
     }
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         $logger = new Horde_Log_Logger(new Horde_Log_Handler_Cli());
         //self::$db->setLogger($logger);
@@ -186,7 +192,7 @@
         self::$vfs = new Horde_Vfs_Sql(array('db' => self::$db));
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         if (self::$migrator) {
             if (self::$db) {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/MysqlTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/MysqlTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_Sql_MysqlTest extends Horde_Vfs_Test_Sql_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('mysql')) {
             self::$reason = 'No mysql extension';
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/MysqliTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/MysqliTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_Sql_MysqliTest extends Horde_Vfs_Test_Sql_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('mysqli')) {
             self::$reason = 'No mysqli extension';
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Oci8Test.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Oci8Test.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_Sql_Oci8Test extends Horde_Vfs_Test_Sql_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('oci8')) {
             self::$reason = 'No oci8 extension';
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Pdo/MysqlTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Pdo/MysqlTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_Sql_Pdo_MysqlTest extends Horde_Vfs_Test_Sql_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('pdo') ||
             !in_array('mysql', PDO::getAvailableDrivers())) {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Pdo/PgsqlTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Pdo/PgsqlTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_Sql_Pdo_PgsqlTest extends Horde_Vfs_Test_Sql_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('pdo') ||
             !in_array('pgsql', PDO::getAvailableDrivers())) {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Pdo/SqliteTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Sql/Pdo/SqliteTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_Sql_Pdo_SqliteTest extends Horde_Vfs_Test_Sql_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         $factory_db = new Horde_Test_Factory_Db();
 
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Base.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Base.php
@@ -164,7 +164,7 @@
         $this->_nullRoot();
     }
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         // The SqlFile VFS driver needs to be refactored to a real composite
         // driver.
@@ -190,7 +190,7 @@
         self::$vfs = new Horde_Vfs_SqlFile(array('db' => self::$db));
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         if (self::$migrator) {
             self::$migrator->down();
@@ -200,7 +200,7 @@
         parent::tearDownAfterClass();
     }
 
-    public function setUp()
+    public function setUp(): void
     {
         $this->markTestIncomplete('The SqlFile VFS driver needs to be refactored to a real composite driver.');
         parent::setUp();
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/MysqlTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/MysqlTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_SqlFile_MysqlTest extends Horde_Vfs_Test_SqlFile_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('mysql')) {
             self::$reason = 'No mysql extension';
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/MysqliTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/MysqliTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_SqlFile_MysqliTest extends Horde_Vfs_Test_SqlFile_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('mysqli')) {
             self::$reason = 'No mysqli extension';
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Pdo/MysqlTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Pdo/MysqlTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_SqlFile_Pdo_MysqlTest extends Horde_Vfs_Test_SqlFile_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('pdo') ||
             !in_array('mysql', PDO::getAvailableDrivers())) {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Pdo/PgsqlTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Pdo/PgsqlTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_SqlFile_Pdo_PgsqlTest extends Horde_Vfs_Test_SqlFile_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('pdo') ||
             !in_array('pgsql', PDO::getAvailableDrivers())) {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Pdo/SqliteTest.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/SqlFile/Pdo/SqliteTest.php
@@ -15,7 +15,7 @@
  */
 class Horde_Vfs_SqlFile_Pdo_SqliteTest extends Horde_Vfs_Test_SqlFile_Base
 {
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         $factory_db = new Horde_Test_Factory_Db();
 
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/Ssh2Test.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/Ssh2Test.php
@@ -22,6 +22,8 @@
 
     public function testCreateFolder()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_createFolderStructure();
     }
 
@@ -30,6 +32,8 @@
      */
     public function testWriteData()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_writeData();
     }
 
@@ -38,6 +42,8 @@
      */
     public function testWrite()
     {
+        $this->expectNotToPerformAssertions();
+
         $this->_write();
     }
 
@@ -170,7 +176,7 @@
         $this->_nullRoot();
     }
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         if (!extension_loaded('ssh2')) {
             self::$reason = 'No ssh2 extension';
@@ -184,7 +190,7 @@
         }
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         if (self::$vfs) {
             try {
--- a/Horde_Vfs-2.4.2/test/Horde/Vfs/TestBase.php
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/TestBase.php
@@ -13,14 +13,14 @@
     protected static $reason = '';
     protected static $vfs;
 
-    public function setUp()
+    public function setUp(): void
     {
         if (!self::$vfs) {
             $this->markTestSkipped(self::$reason);
         }
     }
 
-    public static function tearDownAfterClass()
+    public static function tearDownAfterClass(): void
     {
         self::$vfs = null;
     }
--- /dev/null
+++ b/Horde_Vfs-2.4.2/test/Horde/Vfs/phpunit.xml
@@ -0,0 +1 @@
+<phpunit bootstrap="bootstrap.php"></phpunit>
