From e68fa71b0eb66a12adcdf35c411c6f83970749ec Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 5 Nov 2012 19:22:09 +0100 Subject: Fixed rcube_imap_generic::uncompressMessageSet() result when argument is empty. Added tests. --- program/include/rcube_imap_generic.php | 6 +++++- tests/Framework/ImapGeneric.php | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index 52bf0e37a..9c525dcba 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -3530,6 +3530,10 @@ class rcube_imap_generic */ static function uncompressMessageSet($messages) { + if (empty($messages)) { + return array(); + } + $result = array(); $messages = explode(',', $messages); @@ -3538,7 +3542,7 @@ class rcube_imap_generic $max = max($items[0], $items[1]); for ($x=$items[0]; $x<=$max; $x++) { - $result[] = $x; + $result[] = (int)$x; } unset($messages[$idx]); } diff --git a/tests/Framework/ImapGeneric.php b/tests/Framework/ImapGeneric.php index 0b2cc3d53..2f9b6d10f 100644 --- a/tests/Framework/ImapGeneric.php +++ b/tests/Framework/ImapGeneric.php @@ -17,4 +17,22 @@ class Framework_ImapGeneric extends PHPUnit_Framework_TestCase $this->assertInstanceOf('rcube_imap_generic', $object, "Class constructor"); } + + /** + * Test for uncompressMessageSet + */ + function test_uncompressMessageSet() + { + $result = rcube_imap_generic::uncompressMessageSet(null); + $this->assertSame(array(), $result); + $this->assertCount(0, $result); + + $result = rcube_imap_generic::uncompressMessageSet('1'); + $this->assertSame(array(1), $result); + $this->assertCount(1, $result); + + $result = rcube_imap_generic::uncompressMessageSet('1:3'); + $this->assertSame(array(1, 2, 3), $result); + $this->assertCount(3, $result); + } } -- cgit v1.2.3 From f6cd739a0a364fe76f6015b7bc70eac4a3a9bf02 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 5 Nov 2012 19:50:12 +0100 Subject: Make sure affected_rows() method returns expected (consistent with other RDBMSes) result on MySQL --- program/include/rcube_db_mysql.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/program/include/rcube_db_mysql.php b/program/include/rcube_db_mysql.php index 2cdcf3021..6f0acba54 100644 --- a/program/include/rcube_db_mysql.php +++ b/program/include/rcube_db_mysql.php @@ -127,6 +127,9 @@ class rcube_db_mysql extends rcube_db $result[PDO::MYSQL_ATTR_SSL_CA] = $dsn['ca']; } + // Always return matching (not affected only) rows count + $result[PDO::MYSQL_ATTR_FOUND_ROWS] = true; + return $result; } -- cgit v1.2.3 From 37633a6c794fd35ce3cda8766f8583301a090ba4 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 6 Nov 2012 10:57:46 +0100 Subject: Remove unused unEscape() method --- program/include/rcube_imap_generic.php | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index 9c525dcba..651de9d97 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -3657,18 +3657,6 @@ class rcube_imap_generic return sprintf("{%d}\r\n%s", strlen($string), $string); } - /** - * Unescapes quoted-string - * - * @param string $string IMAP string - * - * @return string String - */ - static function unEscape($string) - { - return stripslashes($string); - } - /** * Set the value of the debugging flag. * -- cgit v1.2.3