Author: Michael Slusarz (slusarz@horde.org)
Inheritance: extends Horde_Imap_Client_Data_Format_Astring
Beispiel #1
0
 public function testBadInput()
 {
     /* @todo: Change in Horde_Imap_Client 3.0 to detect Exception, instead
      * of blank mailbox name. */
     $ob = new Horde_Imap_Client_Data_Format_Mailbox("foo");
     /* binary() call creates the blank string representation. */
     $this->assertFalse($ob->binary());
     $this->assertEquals('', strval($ob));
 }
Beispiel #2
0
 public function testBug13825()
 {
     $mbox = 'INBOX.!  Astrid"';
     $mbox_escape = '"INBOX.!  Astrid\\""';
     $ob = new Horde_Imap_Client_Mailbox($mbox);
     $this->assertEquals($ob, Horde_Imap_Client_Mailbox::get($mbox));
     $this->assertEquals($ob, Horde_Imap_Client_Mailbox::get($ob));
     $format = new Horde_Imap_Client_Data_Format_Mailbox($ob);
     $this->assertEquals($mbox_escape, $format->escape());
     $format2 = new Horde_Imap_Client_Data_Format_Mailbox_Utf8($ob);
     $this->assertEquals($mbox_escape, $format2->escape());
 }
Beispiel #3
0
 /**
  */
 protected function _filterParams()
 {
     $ob = parent::_filterParams();
     /* Don't quote % or * characters. */
     $ob->no_quote_list = true;
     return $ob;
 }
Beispiel #4
0
 /**
  */
 public function __construct($data)
 {
     parent::__construct($data);
     /* RFC 3501 allows any US-ASCII character, except null (\0), in
      * mailbox data.
      * RFC 6855 [3] institutes additional limitations on valid mailbox
      * characters, to comply with RFC 5198 [2] (Net-Unicode Definition):
      * "MUST NOT contain control characters (U+0000-U+001F and
      * U+0080-U+009F), a delete character (U+007F), a line separator
      * (U+2028), or a paragraph separator (U+2029)." */
     if ($this->quoted() && preg_match('/[\\x00-\\x1f\\x7f\\x80-\\x9f\\x{2028}\\x{2029}]/u', strval($this))) {
         throw new Horde_Imap_Client_Data_Format_Exception('Invalid character found in mailbox data.');
     }
     if ($this->literal()) {
         $this->forceQuoted();
     }
 }