public function testValidationStrict() { $path = 'Configuration/tests/files/simple-errors.ini'; $backend = new ezcConfigurationIniReader($path); $return = $backend->validate(true); $expected = new ezcConfigurationValidationResult($backend->getLocation(), $backend->getName(), $path); $expected->isValid = false; $item = new ezcConfigurationValidationItem(ezcConfigurationValidationItem::ERROR, $path, 8, false, "Invalid data: 'c8756*&%&^%&%\$&C%\$%C*@%C*\$'", "Invalid data: 'c8756*&%&^%&%\$&C%\$%C*@%C*\$'"); $expected->appendItem($item); $this->assertEquals($expected, $return); }
/** * Validates the configuration. * * Validates the configuration at the given location and returns the * validation result. * * If $strict is set it will not validate the file if it contains any * errors or warnings. If false it will allow warnings but not errors. * * @param bool $strict * @return ezcConfigurationValidationResult */ public function validate($strict = false) { $parserType = $strict ? ezcConfigurationIniParser::VALIDATE_STRICT : ezcConfigurationIniParser::VALIDATE; $parser = new ezcConfigurationIniParser($parserType, $this->path); $validationResult = new ezcConfigurationValidationResult($this->location, $this->name, $this->path); foreach (new NoRewindIterator($parser) as $element) { if ($element instanceof ezcConfigurationIniItem) { throw new Exception("A validating parser emitted a configuration item, which should never happen"); } if ($element instanceof ezcConfigurationValidationItem) { $validationResult->appendItem($element); if ($element->type == ezcConfigurationValidationItem::ERROR) { $validationResult->isValid = false; } else { if ($element->type == ezcConfigurationValidationItem::WARNING && $parserType == ezcConfigurationIniItem::VALIDATE_STRICT) { $validationResult->isValid = false; } } } } return $validationResult; }