diff --git a/plugins/acl/tests/Acl.php b/plugins/acl/tests/Acl.php
new file mode 100644
index 000000000..e752ac977
--- /dev/null
+++ b/plugins/acl/tests/Acl.php
@@ -0,0 +1,23 @@
+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 000000000..1c54ffc42
--- /dev/null
+++ b/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php
@@ -0,0 +1,23 @@
+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 000000000..0a1eeae11
--- /dev/null
+++ b/plugins/archive/tests/Archive.php
@@ -0,0 +1,23 @@
+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 000000000..0de193e4a
--- /dev/null
+++ b/plugins/autologon/tests/Autologon.php
@@ -0,0 +1,23 @@
+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 000000000..f260737ab
--- /dev/null
+++ b/plugins/database_attachments/tests/DatabaseAttachments.php
@@ -0,0 +1,23 @@
+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 1e015c201..87a163785 100644
--- a/plugins/debug_logger/debug_logger.php
+++ b/plugins/debug_logger/debug_logger.php
@@ -142,8 +142,9 @@ class debug_logger extends rcube_plugin
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 000000000..de20a069d
--- /dev/null
+++ b/plugins/debug_logger/tests/DebugLogger.php
@@ -0,0 +1,23 @@
+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 000000000..4b6c303c2
--- /dev/null
+++ b/plugins/emoticons/tests/Emoticons.php
@@ -0,0 +1,23 @@
+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 000000000..0d0d8f8ae
--- /dev/null
+++ b/plugins/enigma/tests/Enigma.php
@@ -0,0 +1,23 @@
+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 000000000..4a54bd950
--- /dev/null
+++ b/plugins/example_addressbook/tests/ExampleAddressbook.php
@@ -0,0 +1,23 @@
+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 000000000..dcab315d3
--- /dev/null
+++ b/plugins/filesystem_attachments/tests/FilesystemAttachments.php
@@ -0,0 +1,23 @@
+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 000000000..baba492ae
--- /dev/null
+++ b/plugins/help/tests/Help.php
@@ -0,0 +1,23 @@
+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 000000000..030c05324
--- /dev/null
+++ b/plugins/hide_blockquote/tests/HideBlockquote.php
@@ -0,0 +1,23 @@
+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 000000000..c17236821
--- /dev/null
+++ b/plugins/http_authentication/tests/HttpAuthentication.php
@@ -0,0 +1,23 @@
+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 000000000..3bcd27c9f
--- /dev/null
+++ b/plugins/jqueryui/tests/Jqueryui.php
@@ -0,0 +1,23 @@
+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 000000000..d802f5614
--- /dev/null
+++ b/plugins/managesieve/tests/Managesieve.php
@@ -0,0 +1,23 @@
+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 000000000..cdf13255e
--- /dev/null
+++ b/plugins/markasjunk/tests/Markasjunk.php
@@ -0,0 +1,23 @@
+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 000000000..3a52f20f3
--- /dev/null
+++ b/plugins/new_user_dialog/tests/NewUserDialog.php
@@ -0,0 +1,23 @@
+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 000000000..c1d385853
--- /dev/null
+++ b/plugins/new_user_identity/tests/NewUserIdentity.php
@@ -0,0 +1,23 @@
+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 000000000..571912a61
--- /dev/null
+++ b/plugins/newmail_notifier/tests/NewmailNotifier.php
@@ -0,0 +1,23 @@
+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 000000000..a9663a946
--- /dev/null
+++ b/plugins/password/tests/Password.php
@@ -0,0 +1,23 @@
+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 000000000..386f97e59
--- /dev/null
+++ b/plugins/redundant_attachments/tests/RedundantAttachments.php
@@ -0,0 +1,23 @@
+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 000000000..902ce510b
--- /dev/null
+++ b/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
@@ -0,0 +1,23 @@
+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 000000000..2e35509f0
--- /dev/null
+++ b/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php
@@ -0,0 +1,23 @@
+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 000000000..6932a955f
--- /dev/null
+++ b/plugins/subscriptions_option/tests/SubscriptionsOption.php
@@ -0,0 +1,23 @@
+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 000000000..762d5a1fa
--- /dev/null
+++ b/plugins/userinfo/tests/Userinfo.php
@@ -0,0 +1,23 @@
+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 000000000..35fd7f447
--- /dev/null
+++ b/plugins/vcard_attachments/tests/VcardAttachments.php
@@ -0,0 +1,23 @@
+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 000000000..a4362c3dc
--- /dev/null
+++ b/plugins/virtuser_file/tests/VirtuserFile.php
@@ -0,0 +1,23 @@
+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 000000000..d5bd4ee4b
--- /dev/null
+++ b/plugins/virtuser_query/tests/VirtuserQuery.php
@@ -0,0 +1,23 @@
+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 000000000..f3b4e1b35
--- /dev/null
+++ b/plugins/zipdownload/tests/Zipdownload.php
@@ -0,0 +1,23 @@
+api);
+
+ $this->assertInstanceOf('zipdownload', $plugin);
+ $this->assertInstanceOf('rcube_plugin', $plugin);
+ }
+}
+
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index a9e25610c..40659ebf0 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -33,3 +33,9 @@ if (@is_dir(TESTS_DIR . 'config')) {
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 5a858111b..da0f899a9 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -32,9 +32,38 @@
Framework/Washtml.php
MailFunc.php
-
+
+ ./../plugins/acl/tests/Acl.php
+ ./../plugins/additional_message_headers/tests/AdditionalMessageHeaders.php
+ ./../plugins/archive/tests/Archive.php
+ ./../plugins/autologon/tests/Autologon.php
+ ./../plugins/database_attachments/tests/DatabaseAttachments.php
+ ./../plugins/debug_logger/tests/DebugLogger.php
+ ./../plugins/emoticons/tests/Emoticons.php
+ ./../plugins/enigma/tests/Enigma.php
+ ./../plugins/example_addressbook/tests/ExampleAddressbook.php
+ ./../plugins/filesystem_attachments/tests/FilesystemAttachments.php
+ ./../plugins/help/tests/Help.php
+ ./../plugins/hide_blockquote/tests/HideBlockquote.php
+ ./../plugins/http_authentication/tests/HttpAuthentication.php
+ ./../plugins/jqueryui/tests/Jqueryui.php
+ ./../plugins/managesieve/tests/Managesieve.php
./../plugins/managesieve/tests/Parser.php
./../plugins/managesieve/tests/Tokenizer.php
+ ./../plugins/markasjunk/tests/Markasjunk.php
+ ./../plugins/new_user_dialog/tests/NewUserDialog.php
+ ./../plugins/new_user_identity/tests/NewUserIdentity.php
+ ./../plugins/newmail_notifier/tests/NewmailNotifier.php
+ ./../plugins/password/tests/Password.php
+ ./../plugins/redundant_attachments/tests/RedundantAttachments.php
+ ./../plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
+ ./../plugins/squirrelmail_usercopy/tests/Squirrelmail_usercopy.php
+ ./../plugins/subscriptions_option/tests/SubscriptionsOption.php
+ ./../plugins/userinfo/tests/Userinfo.php
+ ./../plugins/vcard_attachments/tests/VcardAttachments.php
+ ./../plugins/virtuser_file/tests/VirtuserFile.php
+ ./../plugins/virtuser_query/tests/VirtuserQuery.php
+ ./../plugins/zipdownload/tests/Zipdownload.php