public toXml ( ) |
public function toXml()
{
if (empty($this->_encoder)) {
throw new Horde_ActiveSync_Exception('No output stream');
}
$policies = array_merge($this->_defaults, $this->_overrides);
$xml = '<wap-provisioningdoc><characteristic type="SecurityPolicy">' . '<parm name="4131" value="' . ($policies[self::POLICY_PIN] ? 0 : 1) . '"/>' . '</characteristic>';
if ($policies[self::POLICY_PIN]) {
$xml .= '<characteristic type="Registry">' . '<characteristic type="HKLM\\Comm\\Security\\Policy\\LASSD\\AE\\{50C13377-C66D-400C-889E-C316FC4AB374}">' . '<parm name="AEFrequencyType" value="' . (!empty($policies[self::POLICY_AEFVALUE]) ? 1 : 0) . '"/>' . (!empty($policies[self::POLICY_AEFVALUE]) ? '<parm name="AEFrequencyValue" value="' . $policies[self::POLICY_AEFVALUE] . '"/>' : '') . '</characteristic>';
if (!empty($policies[self::POLICY_MAXFAILEDATTEMPTS])) {
$xml .= '<characteristic type="HKLM\\Comm\\Security\\Policy\\LASSD"><parm name="DeviceWipeThreshold" value="' . $policies[self::POLICY_MAXFAILEDATTEMPTS] . '"/></characteristic>';
}
if (!empty($policies[self::POLICY_CODEFREQ])) {
$xml .= '<characteristic type="HKLM\\Comm\\Security\\Policy\\LASSD"><parm name="CodewordFrequency" value="' . $policies[self::POLICY_CODEFREQ] . '"/></characteristic>';
}
if (!empty($policies[self::POLICY_MINLENGTH])) {
$xml .= '<characteristic type="HKLM\\Comm\\Security\\Policy\\LASSD\\LAP\\lap_pw"><parm name="MinimumPasswordLength" value="' . $policies[self::POLICY_MINLENGTH] . '"/></characteristic>';
}
if ($policies[self::POLICY_COMPLEXITY] !== false) {
$xml .= '<characteristic type="HKLM\\Comm\\Security\\Policy\\LASSD\\LAP\\lap_pw"><parm name="PasswordComplexity" value="' . $policies[self::POLICY_COMPLEXITY] . '"/></characteristic>';
}
$xml .= '</characteristic>';
}
$xml .= '</wap-provisioningdoc>';
$this->_encoder->content($xml);
}
public function testDefaultXml() { $stream = fopen('php://memory', 'w+'); $encoder = new Horde_ActiveSync_Wbxml_Encoder($stream); $handler = new Horde_ActiveSync_Policies($encoder); $handler->toXml(); rewind($stream); $results = stream_get_contents($stream); fclose($stream); $fixture = file_get_contents(__DIR__ . '/fixtures/default_policies.xml'); $this->assertEquals($fixture, $results); }