Example #1
0
File: Imap.php Project: nieldm/zf2
 /**
  * Count messages all messages in current box
  *
  * @param null $flags
  * @throws Exception\RuntimeException
  * @throws \Zend\Mail\Protocol\Exception\RuntimeException
  * @return int number of messages
  */
 public function countMessages($flags = null)
 {
     if (!$this->currentFolder) {
         throw new Exception\RuntimeException('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));
 }
Example #2
0
 public function testEscaping()
 {
     $protocol = new 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)');
 }