Aleksander Machniak
2012-11-05 e68fa71b0eb66a12adcdf35c411c6f83970749ec
Fixed rcube_imap_generic::uncompressMessageSet() result when argument is empty. Added tests.
2 files modified
24 ■■■■■ changed files
program/include/rcube_imap_generic.php 6 ●●●● patch | view | raw | blame | history
tests/Framework/ImapGeneric.php 18 ●●●●● patch | view | raw | blame | history
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]);
        }
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);
    }
}