Horde_Imap_Client_Data_Capability_Imap::enable PHP Method

enable() public method

Set a capability as enabled/disabled.
public enable ( array $capability, boolean $enable = true )
$capability array A capability (+ parameter).
$enable boolean If true, enables the capability.
    public function enable($capability, $enable = true)
    {
        $capability = Horde_String::upper($capability);
        $enabled = $this->isEnabled($capability);
        if ($enable && !$enabled) {
            switch ($capability) {
                case 'QRESYNC':
                    /* RFC 7162 [3.2.3] - Enabling QRESYNC also implies enabling
                     * of CONDSTORE. */
                    $this->enable('CONDSTORE');
                    break;
            }
            $this->_enabled[] = $capability;
            $this->notify();
        } elseif (!$enable && $enabled) {
            $this->_enabled = array_diff($this->_enabled, array($capability));
            $this->notify();
        }
    }

Usage Example

Example #1
0
 public function testSerialize()
 {
     $c = new Horde_Imap_Client_Data_Capability_Imap();
     $c->add('FOO', 'A');
     $c->add('FOO', 'B');
     $c->add('BAR');
     $c->enable('BAR');
     $mock = $this->getMock('SplObserver');
     $mock->expects($this->never())->method('update')->with($this->equalTo($c));
     $c->attach($mock);
     $c_copy = unserialize(serialize($c));
     $this->assertTrue($c_copy->query('FOO', 'A'));
     $this->assertTrue($c_copy->query('FOO', 'B'));
     $this->assertTrue($c_copy->query('BAR'));
     $this->assertFalse($c_copy->isEnabled('BAR'));
     $c_copy->add('BAZ');
 }
Horde_Imap_Client_Data_Capability_Imap