diff options
-rw-r--r-- | program/include/rcube_imap_generic.php | 6 | ||||
-rw-r--r-- | tests/Framework/ImapGeneric.php | 18 |
2 files changed, 23 insertions, 1 deletions
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); + } } |