Esempio n. 1
0
    /**
     * Count messages all messages in current box
     *
     * @return int number of messages
     * @throws Zend_Mail_Storage_Exception
     * @throws Zend_Mail_Protocol_Exception
     */
    public function countMessages($flags = null)
    {
        if (!$this->_currentFolder) {
            /**
             * @see Zend_Mail_Storage_Exception
             */
            require_once 'Zend/Mail/Storage/Exception.php';
            throw new Zend_Mail_Storage_Exception('No selected folder to count');
        }

        if ($flags === null) {
            return count($this->_protocol->search(array('ALL')));
        }

        $params = array();
        foreach ((array)$flags as $flag) {
            if (isset(self::$_searchFlags[$flag])) {
                $params[] = self::$_searchFlags[$flag];
            } else {
                $params[] = 'KEYWORD';
                $params[] = $this->_protocol->escapeString($flag);
            }
        }
        return count($this->_protocol->search($params));
    }
Esempio n. 2
0
 public function testEscaping()
 {
     $protocol = new Zend_Mail_Protocol_Imap();
     $this->assertEquals($protocol->escapeString('foo'), '"foo"');
     $this->assertEquals($protocol->escapeString('f\\oo'), '"f\\\\oo"');
     $this->assertEquals($protocol->escapeString('f"oo'), '"f\\"oo"');
     $this->assertEquals($protocol->escapeString('foo', 'bar'), array('"foo"', '"bar"'));
     $this->assertEquals($protocol->escapeString("f\noo"), array('{4}', "f\noo"));
     $this->assertEquals($protocol->escapeList(array('foo')), '(foo)');
     $this->assertEquals($protocol->escapeList(array(array('foo'))), '((foo))');
     $this->assertEquals($protocol->escapeList(array('foo', 'bar')), '(foo bar)');
 }