/** * Sets a script running on the backend. * * @param array $script The filter script information. Passed elements: * - 'name': (string) the script name. * - 'recipes': (array) the filter recipe objects. * - 'script': (string) the filter script. * * @throws Ingo_Exception */ public function setScriptActive($script) { $this->_connect(); try { if (!strlen($script['script'])) { $this->_sieve->setActive(''); $this->_sieve->removeScript($script['name']); return; } if (!$this->_sieve->hasSpace($script['name'], strlen($script['script']))) { throw new Ingo_Exception(_("Not enough free space on the server.")); } $this->_sieve->installScript($script['name'], $script['script'], true); } catch (ManageSieve\Exception $e) { throw new Ingo_Exception($e); } }
public function testSetActive() { $this->clear(); $this->login(); $scriptname = 'test script1'; $this->fixture->installScript($scriptname, $this->scripts[$scriptname]); $this->fixture->setActive($scriptname); $active_script = $this->fixture->getActive(); $this->assertEquals($scriptname, $active_script, 'Active script does not match'); // Test for non-existant script. try { $this->fixture->setActive('non existant script'); $this->fail('Exception expected'); } catch (Exception $e) { } $this->logout(); }