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)); }
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()); }
/** */ protected function _filterParams() { $ob = parent::_filterParams(); /* Don't quote % or * characters. */ $ob->no_quote_list = true; return $ob; }
/** */ 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(); } }