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