public function query($capability, $parameter = null)
{
if (parent::query($capability, $parameter)) {
return true;
}
switch (Horde_String::upper($capability)) {
case 'CONDSTORE':
case 'ENABLE':
/* RFC 7162 [3.2.3] - QRESYNC implies CONDSTORE and ENABLE. */
return is_null($parameter) && $this->query('QRESYNC');
case 'UTF8':
/* RFC 6855 [3] - UTF8=ONLY implies UTF8=ACCEPT. */
return Horde_String::upper($parameter) === 'ACCEPT' && $this->query('UTF8', 'ONLY');
}
return false;
}
public function testImpliedExtensions() { $c = new Horde_Imap_Client_Data_Capability_Imap(); $c->add('QRESYNC'); $this->assertTrue($c->query('QRESYNC')); /* QRESYNC implies CONDSTORE and ENABLE. */ $this->assertTrue($c->query('CONDSTORE')); $this->assertTrue($c->query('ENABLE')); }