From e68fa71b0eb66a12adcdf35c411c6f83970749ec Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 05 Nov 2012 13:22:09 -0500
Subject: [PATCH] Fixed rcube_imap_generic::uncompressMessageSet() result when argument is empty. Added tests.

---
 tests/Framework/ImapGeneric.php        |   18 ++++++++++++++++++
 program/include/rcube_imap_generic.php |    6 +++++-
 2 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index 52bf0e3..9c525dc 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -3530,6 +3530,10 @@
      */
     static function uncompressMessageSet($messages)
     {
+        if (empty($messages)) {
+            return array();
+        }
+
         $result   = array();
         $messages = explode(',', $messages);
 
@@ -3538,7 +3542,7 @@
             $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 0b2cc3d..2f9b6d1 100644
--- a/tests/Framework/ImapGeneric.php
+++ b/tests/Framework/ImapGeneric.php
@@ -17,4 +17,22 @@
 
         $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);
+    }
 }

--
Gitblit v1.9.1