diff --git a/bootstrap.php b/bootstrap.php index 565b797..7e593e6 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -1613,3 +1613,14 @@ function imap2_utf8(string $string) return imap_utf8($string); } } + +/* For testing +// A side-effectless version (functions only) of Roundcube's bootstrap.php +require __DIR__ . '/rcube_bootstrap.php'; +require __DIR__ . '/roundcubemail/program/lib/Roundcube/rcube.php'; +require __DIR__ . '/roundcubemail/program/lib/Roundcube/rcube_mime_decode.php'; +require __DIR__ . '/roundcubemail/program/lib/Roundcube/rcube_charset.php'; +require __DIR__ . '/roundcubemail/program/lib/Roundcube/rcube_string_replacer.php'; +require __DIR__ . '/roundcubemail/program/lib/Roundcube/rcube_imap_generic.php'; +require __DIR__ . '/roundcubemail/program/lib/Roundcube/rcube_result_index.php'; +*/ diff --git a/composer.json b/composer.json index b7f9a58..ecb86e7 100755 --- a/composer.json +++ b/composer.json @@ -25,7 +25,9 @@ "zbateson/mail-mime-parser": "^2.2" }, "require-dev": { - "phpunit/phpunit": "^6.5" + "phpunit/phpunit": "^6.5", + "phpstan/phpstan": "^1.10", + "pear/auth_sasl": "^1.1" }, "suggest": { "ext-mbstring": "For best support/performance", diff --git a/src/Mailbox.php b/src/Mailbox.php index c72f110..b17b5b5 100644 --- a/src/Mailbox.php +++ b/src/Mailbox.php @@ -35,7 +35,7 @@ public static function check($imap) return imap_check($imap); } - trigger_error(Errors::invalidImapConnection(debug_backtrace(), 1), E_USER_WARNING); + trigger_error(Errors::invalidImapConnection(debug_backtrace(), 1, false), E_USER_WARNING); return false; } @@ -245,13 +245,13 @@ public static function createMailbox($imap, $mailbox) public static function renameMailbox($imap, $from, $to) { - if (is_a($imap, Connection::class)) { - $client = $imap->getClient(); - - return $client->createFolder($mailbox); + if (!is_a($imap, Connection::class)) { + return Errors::invalidImapConnection(debug_backtrace(), 1, false); } - return imap_createmailbox($imap, $mailbox); + $client = $imap->getClient(); + + return $client->renameFolder($from, $to); } public static function deleteMailbox($imap, $mailbox) diff --git a/src/Polyfill.php b/src/Polyfill.php index 949e279..9ce0174 100644 --- a/src/Polyfill.php +++ b/src/Polyfill.php @@ -87,7 +87,7 @@ public static function rfc822WriteHeaders($string) public static function utf7Decode($string) { - return mb_convert_decoding($string, "UTF7-IMAP", "UTF-8"); + return mb_convert_encoding($string, "UTF7-IMAP", "UTF-8"); } public static function utf7Encode($string) diff --git a/src/Roundcube/Charset.php b/src/Roundcube/Charset.php index 99222a8..b776525 100644 --- a/src/Roundcube/Charset.php +++ b/src/Roundcube/Charset.php @@ -23,8 +23,8 @@ namespace Javanile\Imap2\Roundcube; -use Javanile\Imap2\ErrorException; -use Javanile\Imap2\rcube; +use ErrorException; +use rcube; /** * Character sets conversion functionality diff --git a/src/Roundcube/ImapClient.php b/src/Roundcube/ImapClient.php index 6d61885..03e32ff 100644 --- a/src/Roundcube/ImapClient.php +++ b/src/Roundcube/ImapClient.php @@ -26,10 +26,10 @@ namespace Javanile\Imap2\Roundcube; -use Javanile\Imap2\Auth_SASL; -use Javanile\Imap2\Exception; -use Javanile\Imap2\GSSAPIContext; -use Javanile\Imap2\KRB5CCache; +use Auth_SASL; +use Exception; +use GSSAPIContext; +use KRB5CCache; use Javanile\Imap2\rcube_message_header; use Javanile\Imap2\rcube_result_index; use Javanile\Imap2\rcube_result_thread; diff --git a/src/Roundcube/Mime.php b/src/Roundcube/Mime.php index f082ed4..17a7f64 100644 --- a/src/Roundcube/Mime.php +++ b/src/Roundcube/Mime.php @@ -21,8 +21,8 @@ namespace Javanile\Imap2\Roundcube; -use Javanile\Imap2\rcube; -use Javanile\Imap2\rcube_mime_decode; +use rcube; +use rcube_mime_decode; /** * Class for parsing MIME messages diff --git a/src/Roundcube/ResultIndex.php b/src/Roundcube/ResultIndex.php index ce0a371..8c607d4 100644 --- a/src/Roundcube/ResultIndex.php +++ b/src/Roundcube/ResultIndex.php @@ -22,7 +22,7 @@ namespace Javanile\Imap2\Roundcube; use Javanile\Imap2\Offset; -use Javanile\Imap2\rcube_imap_generic; +use rcube_imap_generic; /** * Class for accessing IMAP's SORT/SEARCH/ESEARCH result diff --git a/src/Roundcube/ResultThread.php b/src/Roundcube/ResultThread.php index e8a16f6..54b7a08 100644 --- a/src/Roundcube/ResultThread.php +++ b/src/Roundcube/ResultThread.php @@ -22,8 +22,8 @@ namespace Javanile\Imap2\Roundcube; use Javanile\Imap2\Offset; -use Javanile\Imap2\rcube_imap_generic; -use Javanile\Imap2\rcube_result_index; +use rcube_imap_generic; +use rcube_result_index; /** * Class for accessing IMAP's THREAD result @@ -427,7 +427,7 @@ public function get_parameters($param=null) */ public function sort($index) { - $this->sort_order = $index->get_parameters('ORDER'); + $this->order = $index->get_parameters('ORDER'); if (empty($this->raw_data)) { return; diff --git a/src/Roundcube/Utils.php b/src/Roundcube/Utils.php index b5a83cc..7b5e779 100644 --- a/src/Roundcube/Utils.php +++ b/src/Roundcube/Utils.php @@ -21,12 +21,12 @@ namespace Javanile\Imap2\Roundcube; -use Javanile\Imap2\DateTime; -use Javanile\Imap2\DateTimeZone; -use Javanile\Imap2\Exception; -use Javanile\Imap2\rcube; -use Javanile\Imap2\rcube_charset; -use Javanile\Imap2\rcube_string_replacer; +use DateTime; +use DateTimeZone; +use Exception; +use rcube; +use rcube_charset; +use rcube_string_replacer; /** * Utility class providing common functions