From b005927f919cbc09dccf71e8c638be45a8af37d0 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sat, 19 Jan 2013 06:16:16 -0500
Subject: [PATCH] Add basic tests for plugins

---
 plugins/managesieve/tests/Managesieve.php                             |   23 +
 plugins/newmail_notifier/tests/NewmailNotifier.php                    |   23 +
 plugins/additional_message_headers/tests/AdditionalMessageHeaders.php |   23 +
 plugins/emoticons/tests/Emoticons.php                                 |   23 +
 plugins/markasjunk/tests/Markasjunk.php                               |   23 +
 plugins/database_attachments/tests/DatabaseAttachments.php            |   23 +
 plugins/virtuser_file/tests/VirtuserFile.php                          |   23 +
 plugins/zipdownload/tests/Zipdownload.php                             |   23 +
 plugins/hide_blockquote/tests/HideBlockquote.php                      |   23 +
 plugins/redundant_attachments/tests/RedundantAttachments.php          |   23 +
 plugins/show_additional_headers/tests/ShowAdditionalHeaders.php       |   23 +
 plugins/archive/tests/Archive.php                                     |   23 +
 plugins/http_authentication/tests/HttpAuthentication.php              |   23 +
 plugins/autologon/tests/Autologon.php                                 |   23 +
 tests/phpunit.xml                                                     |   31 ++
 plugins/enigma/tests/Enigma.php                                       |   23 +
 plugins/example_addressbook/tests/ExampleAddressbook.php              |   23 +
 plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php          |   23 +
 plugins/filesystem_attachments/tests/FilesystemAttachments.php        |   23 +
 plugins/debug_logger/debug_logger.php                                 |    7 
 plugins/new_user_identity/tests/NewUserIdentity.php                   |   23 +
 plugins/password/tests/Password.php                                   |   23 +
 plugins/jqueryui/tests/Jqueryui.php                                   |   23 +
 plugins/new_user_dialog/tests/NewUserDialog.php                       |   23 +
 tests/bootstrap.php                                                   |    6 
 plugins/virtuser_query/tests/VirtuserQuery.php                        |   23 +
 plugins/acl/tests/Acl.php                                             |   23 +
 plugins/vcard_attachments/tests/VcardAttachments.php                  |   23 +
 plugins/subscriptions_option/tests/SubscriptionsOption.php            |   23 +
 plugins/help/tests/Help.php                                           |   23 +
 plugins/debug_logger/tests/DebugLogger.php                            |   23 +
 plugins/userinfo/tests/Userinfo.php                                   |   23 +
 32 files changed, 707 insertions(+), 4 deletions(-)

diff --git a/plugins/acl/tests/Acl.php b/plugins/acl/tests/Acl.php
new file mode 100644
index 0000000..e752ac9
--- /dev/null
+++ b/plugins/acl/tests/Acl.php
@@ -0,0 +1,23 @@
+<?php
+
+class Acl_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../acl.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new acl($rcube->api);
+
+        $this->assertInstanceOf('acl', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php b/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php
new file mode 100644
index 0000000..1c54ffc
--- /dev/null
+++ b/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php
@@ -0,0 +1,23 @@
+<?php
+
+class AdditionalMessageHeaders_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../additional_message_headers.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new additional_message_headers($rcube->api);
+
+        $this->assertInstanceOf('additional_message_headers', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/archive/tests/Archive.php b/plugins/archive/tests/Archive.php
new file mode 100644
index 0000000..0a1eeae
--- /dev/null
+++ b/plugins/archive/tests/Archive.php
@@ -0,0 +1,23 @@
+<?php
+
+class Archive_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../archive.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new archive($rcube->api);
+
+        $this->assertInstanceOf('archive', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/autologon/tests/Autologon.php b/plugins/autologon/tests/Autologon.php
new file mode 100644
index 0000000..0de193e
--- /dev/null
+++ b/plugins/autologon/tests/Autologon.php
@@ -0,0 +1,23 @@
+<?php
+
+class Autologon_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../autologon.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new autologon($rcube->api);
+
+        $this->assertInstanceOf('autologon', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/database_attachments/tests/DatabaseAttachments.php b/plugins/database_attachments/tests/DatabaseAttachments.php
new file mode 100644
index 0000000..f260737
--- /dev/null
+++ b/plugins/database_attachments/tests/DatabaseAttachments.php
@@ -0,0 +1,23 @@
+<?php
+
+class DatabaseAttachments_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../database_attachments.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new database_attachments($rcube->api);
+
+        $this->assertInstanceOf('database_attachments', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/debug_logger/debug_logger.php b/plugins/debug_logger/debug_logger.php
index 1e015c2..87a1637 100644
--- a/plugins/debug_logger/debug_logger.php
+++ b/plugins/debug_logger/debug_logger.php
@@ -142,8 +142,9 @@
         return $args;
     }
 
-    function __destruct(){
-                $this->runlog->end();
+    function __destruct()
+    {
+        if ($this->runlog)
+            $this->runlog->end();
     }
 }
-?>
diff --git a/plugins/debug_logger/tests/DebugLogger.php b/plugins/debug_logger/tests/DebugLogger.php
new file mode 100644
index 0000000..de20a06
--- /dev/null
+++ b/plugins/debug_logger/tests/DebugLogger.php
@@ -0,0 +1,23 @@
+<?php
+
+class DebugLogger_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../debug_logger.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new debug_logger($rcube->api);
+
+        $this->assertInstanceOf('debug_logger', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/emoticons/tests/Emoticons.php b/plugins/emoticons/tests/Emoticons.php
new file mode 100644
index 0000000..4b6c303
--- /dev/null
+++ b/plugins/emoticons/tests/Emoticons.php
@@ -0,0 +1,23 @@
+<?php
+
+class Emoticons_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../emoticons.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new emoticons($rcube->api);
+
+        $this->assertInstanceOf('emoticons', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/enigma/tests/Enigma.php b/plugins/enigma/tests/Enigma.php
new file mode 100644
index 0000000..0d0d8f8
--- /dev/null
+++ b/plugins/enigma/tests/Enigma.php
@@ -0,0 +1,23 @@
+<?php
+
+class Enigma_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../enigma.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new enigma($rcube->api);
+
+        $this->assertInstanceOf('enigma', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/example_addressbook/tests/ExampleAddressbook.php b/plugins/example_addressbook/tests/ExampleAddressbook.php
new file mode 100644
index 0000000..4a54bd9
--- /dev/null
+++ b/plugins/example_addressbook/tests/ExampleAddressbook.php
@@ -0,0 +1,23 @@
+<?php
+
+class ExampleAddressbook_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../example_addressbook.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new example_addressbook($rcube->api);
+
+        $this->assertInstanceOf('example_addressbook', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/filesystem_attachments/tests/FilesystemAttachments.php b/plugins/filesystem_attachments/tests/FilesystemAttachments.php
new file mode 100644
index 0000000..dcab315
--- /dev/null
+++ b/plugins/filesystem_attachments/tests/FilesystemAttachments.php
@@ -0,0 +1,23 @@
+<?php
+
+class FilesystemAttachments_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../filesystem_attachments.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new filesystem_attachments($rcube->api);
+
+        $this->assertInstanceOf('filesystem_attachments', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/help/tests/Help.php b/plugins/help/tests/Help.php
new file mode 100644
index 0000000..baba492
--- /dev/null
+++ b/plugins/help/tests/Help.php
@@ -0,0 +1,23 @@
+<?php
+
+class Help_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../help.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new help($rcube->api);
+
+        $this->assertInstanceOf('help', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/hide_blockquote/tests/HideBlockquote.php b/plugins/hide_blockquote/tests/HideBlockquote.php
new file mode 100644
index 0000000..030c053
--- /dev/null
+++ b/plugins/hide_blockquote/tests/HideBlockquote.php
@@ -0,0 +1,23 @@
+<?php
+
+class HideBlockquote_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../hide_blockquote.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new hide_blockquote($rcube->api);
+
+        $this->assertInstanceOf('hide_blockquote', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/http_authentication/tests/HttpAuthentication.php b/plugins/http_authentication/tests/HttpAuthentication.php
new file mode 100644
index 0000000..c172368
--- /dev/null
+++ b/plugins/http_authentication/tests/HttpAuthentication.php
@@ -0,0 +1,23 @@
+<?php
+
+class HttpAuthentication_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../http_authentication.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new http_authentication($rcube->api);
+
+        $this->assertInstanceOf('http_authentication', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/jqueryui/tests/Jqueryui.php b/plugins/jqueryui/tests/Jqueryui.php
new file mode 100644
index 0000000..3bcd27c
--- /dev/null
+++ b/plugins/jqueryui/tests/Jqueryui.php
@@ -0,0 +1,23 @@
+<?php
+
+class Jqueryui_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../jqueryui.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new jqueryui($rcube->api);
+
+        $this->assertInstanceOf('jqueryui', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/managesieve/tests/Managesieve.php b/plugins/managesieve/tests/Managesieve.php
new file mode 100644
index 0000000..d802f56
--- /dev/null
+++ b/plugins/managesieve/tests/Managesieve.php
@@ -0,0 +1,23 @@
+<?php
+
+class Managesieve_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../managesieve.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new managesieve($rcube->api);
+
+        $this->assertInstanceOf('managesieve', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/markasjunk/tests/Markasjunk.php b/plugins/markasjunk/tests/Markasjunk.php
new file mode 100644
index 0000000..cdf1325
--- /dev/null
+++ b/plugins/markasjunk/tests/Markasjunk.php
@@ -0,0 +1,23 @@
+<?php
+
+class Markasjunk_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../markasjunk.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new markasjunk($rcube->api);
+
+        $this->assertInstanceOf('markasjunk', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/new_user_dialog/tests/NewUserDialog.php b/plugins/new_user_dialog/tests/NewUserDialog.php
new file mode 100644
index 0000000..3a52f20
--- /dev/null
+++ b/plugins/new_user_dialog/tests/NewUserDialog.php
@@ -0,0 +1,23 @@
+<?php
+
+class NewUserDialog_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../new_user_dialog.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new new_user_dialog($rcube->api);
+
+        $this->assertInstanceOf('new_user_dialog', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/new_user_identity/tests/NewUserIdentity.php b/plugins/new_user_identity/tests/NewUserIdentity.php
new file mode 100644
index 0000000..c1d3858
--- /dev/null
+++ b/plugins/new_user_identity/tests/NewUserIdentity.php
@@ -0,0 +1,23 @@
+<?php
+
+class NewUserIdentity_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../new_user_identity.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new new_user_identity($rcube->api);
+
+        $this->assertInstanceOf('new_user_identity', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/newmail_notifier/tests/NewmailNotifier.php b/plugins/newmail_notifier/tests/NewmailNotifier.php
new file mode 100644
index 0000000..571912a
--- /dev/null
+++ b/plugins/newmail_notifier/tests/NewmailNotifier.php
@@ -0,0 +1,23 @@
+<?php
+
+class NewmailNotifier_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../newmail_notifier.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new newmail_notifier($rcube->api);
+
+        $this->assertInstanceOf('newmail_notifier', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/password/tests/Password.php b/plugins/password/tests/Password.php
new file mode 100644
index 0000000..a9663a9
--- /dev/null
+++ b/plugins/password/tests/Password.php
@@ -0,0 +1,23 @@
+<?php
+
+class Password_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../password.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new password($rcube->api);
+
+        $this->assertInstanceOf('password', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/redundant_attachments/tests/RedundantAttachments.php b/plugins/redundant_attachments/tests/RedundantAttachments.php
new file mode 100644
index 0000000..386f97e
--- /dev/null
+++ b/plugins/redundant_attachments/tests/RedundantAttachments.php
@@ -0,0 +1,23 @@
+<?php
+
+class RedundantAttachments_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../redundant_attachments.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new redundant_attachments($rcube->api);
+
+        $this->assertInstanceOf('redundant_attachments', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php b/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
new file mode 100644
index 0000000..902ce51
--- /dev/null
+++ b/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
@@ -0,0 +1,23 @@
+<?php
+
+class ShowAdditionalHeaders_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../show_additional_headers.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new show_additional_headers($rcube->api);
+
+        $this->assertInstanceOf('show_additional_headers', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php b/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php
new file mode 100644
index 0000000..2e35509
--- /dev/null
+++ b/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php
@@ -0,0 +1,23 @@
+<?php
+
+class SquirrelmailUsercopy_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../squirrelmail_usercopy.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new squirrelmail_usercopy($rcube->api);
+
+        $this->assertInstanceOf('squirrelmail_usercopy', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/subscriptions_option/tests/SubscriptionsOption.php b/plugins/subscriptions_option/tests/SubscriptionsOption.php
new file mode 100644
index 0000000..6932a95
--- /dev/null
+++ b/plugins/subscriptions_option/tests/SubscriptionsOption.php
@@ -0,0 +1,23 @@
+<?php
+
+class SubscriptionsOption_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../subscriptions_option.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new subscriptions_option($rcube->api);
+
+        $this->assertInstanceOf('subscriptions_option', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/userinfo/tests/Userinfo.php b/plugins/userinfo/tests/Userinfo.php
new file mode 100644
index 0000000..762d5a1
--- /dev/null
+++ b/plugins/userinfo/tests/Userinfo.php
@@ -0,0 +1,23 @@
+<?php
+
+class Userinfo_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../userinfo.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new userinfo($rcube->api);
+
+        $this->assertInstanceOf('userinfo', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/vcard_attachments/tests/VcardAttachments.php b/plugins/vcard_attachments/tests/VcardAttachments.php
new file mode 100644
index 0000000..35fd7f4
--- /dev/null
+++ b/plugins/vcard_attachments/tests/VcardAttachments.php
@@ -0,0 +1,23 @@
+<?php
+
+class VcardAttachments_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../vcard_attachments.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new vcard_attachments($rcube->api);
+
+        $this->assertInstanceOf('vcard_attachments', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/virtuser_file/tests/VirtuserFile.php b/plugins/virtuser_file/tests/VirtuserFile.php
new file mode 100644
index 0000000..a4362c3
--- /dev/null
+++ b/plugins/virtuser_file/tests/VirtuserFile.php
@@ -0,0 +1,23 @@
+<?php
+
+class VirtuserFile_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../virtuser_file.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new virtuser_file($rcube->api);
+
+        $this->assertInstanceOf('virtuser_file', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/virtuser_query/tests/VirtuserQuery.php b/plugins/virtuser_query/tests/VirtuserQuery.php
new file mode 100644
index 0000000..d5bd4ee
--- /dev/null
+++ b/plugins/virtuser_query/tests/VirtuserQuery.php
@@ -0,0 +1,23 @@
+<?php
+
+class VirtuserQuery_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../virtuser_query.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new virtuser_query($rcube->api);
+
+        $this->assertInstanceOf('virtuser_query', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/plugins/zipdownload/tests/Zipdownload.php b/plugins/zipdownload/tests/Zipdownload.php
new file mode 100644
index 0000000..f3b4e1b
--- /dev/null
+++ b/plugins/zipdownload/tests/Zipdownload.php
@@ -0,0 +1,23 @@
+<?php
+
+class Zipdownload_Plugin extends PHPUnit_Framework_TestCase
+{
+
+    function setUp()
+    {
+        include_once dirname(__FILE__) . '/../zipdownload.php';
+    }
+
+    /**
+     * Plugin object construction test
+     */
+    function test_constructor()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new zipdownload($rcube->api);
+
+        $this->assertInstanceOf('zipdownload', $plugin);
+        $this->assertInstanceOf('rcube_plugin', $plugin);
+    }
+}
+
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index a9e2561..40659eb 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -33,3 +33,9 @@
 require_once(INSTALL_PATH . 'program/include/iniset.php');
 
 rcmail::get_instance()->config->set('devel_mode', false);
+
+// Extend include path so some plugin test won't fail
+$include_path = ini_get('include_path') . PATH_SEPARATOR . TESTS_DIR . '..';
+if (set_include_path($include_path) === false) {
+    die("Fatal error: ini_set/set_include_path does not work.");
+}
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index 5a85811..da0f899 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -32,9 +32,38 @@
             <file>Framework/Washtml.php</file>
             <file>MailFunc.php</file>
         </testsuite>
-        <testsuite name="Managesieve Tests">
+        <testsuite name="Plugins Tests">
+            <file>./../plugins/acl/tests/Acl.php</file>
+            <file>./../plugins/additional_message_headers/tests/AdditionalMessageHeaders.php</file>
+            <file>./../plugins/archive/tests/Archive.php</file>
+            <file>./../plugins/autologon/tests/Autologon.php</file>
+            <file>./../plugins/database_attachments/tests/DatabaseAttachments.php</file>
+            <file>./../plugins/debug_logger/tests/DebugLogger.php</file>
+            <file>./../plugins/emoticons/tests/Emoticons.php</file>
+            <file>./../plugins/enigma/tests/Enigma.php</file>
+            <file>./../plugins/example_addressbook/tests/ExampleAddressbook.php</file>
+            <file>./../plugins/filesystem_attachments/tests/FilesystemAttachments.php</file>
+            <file>./../plugins/help/tests/Help.php</file>
+            <file>./../plugins/hide_blockquote/tests/HideBlockquote.php</file>
+            <file>./../plugins/http_authentication/tests/HttpAuthentication.php</file>
+            <file>./../plugins/jqueryui/tests/Jqueryui.php</file>
+            <file>./../plugins/managesieve/tests/Managesieve.php</file>
             <file>./../plugins/managesieve/tests/Parser.php</file>
             <file>./../plugins/managesieve/tests/Tokenizer.php</file>
+            <file>./../plugins/markasjunk/tests/Markasjunk.php</file>
+            <file>./../plugins/new_user_dialog/tests/NewUserDialog.php</file>
+            <file>./../plugins/new_user_identity/tests/NewUserIdentity.php</file>
+            <file>./../plugins/newmail_notifier/tests/NewmailNotifier.php</file>
+            <file>./../plugins/password/tests/Password.php</file>
+            <file>./../plugins/redundant_attachments/tests/RedundantAttachments.php</file>
+            <file>./../plugins/show_additional_headers/tests/ShowAdditionalHeaders.php</file>
+            <file>./../plugins/squirrelmail_usercopy/tests/Squirrelmail_usercopy.php</file>
+            <file>./../plugins/subscriptions_option/tests/SubscriptionsOption.php</file>
+            <file>./../plugins/userinfo/tests/Userinfo.php</file>
+            <file>./../plugins/vcard_attachments/tests/VcardAttachments.php</file>
+            <file>./../plugins/virtuser_file/tests/VirtuserFile.php</file>
+            <file>./../plugins/virtuser_query/tests/VirtuserQuery.php</file>
+            <file>./../plugins/zipdownload/tests/Zipdownload.php</file>
         </testsuite>
     </testsuites>
 </phpunit>

--
Gitblit v1.9.1