/**
  * Test each acl configuration file
  * @param string $file
  * @dataProvider aclConfigFileDataProvider
  */
 public function testAclConfigFile($file)
 {
     $domConfig = new Magento_Config_Dom(file_get_contents($file));
     $result = $domConfig->validate($this->_schemeFile, $errors);
     $message = "Invalid XML-file: {$file}\n";
     foreach ($errors as $error) {
         $message .= "{$error->message} Line: {$error->line}\n";
     }
     $this->assertTrue($result, $message);
 }
 /**
  * @param string $file
  * @dataProvider viewConfigFileDataProvider
  */
 public function testViewConfigFile($file)
 {
     $domConfig = new Magento_Config_Dom(file_get_contents($file));
     $result = $domConfig->validate(Mage::getBaseDir('lib') . '/Magento/Config/view.xsd', $errors);
     $message = "Invalid XML-file: {$file}\n";
     foreach ($errors as $error) {
         $message .= "{$error->message} Line: {$error->line}\n";
     }
     $this->assertTrue($result, $message);
 }
 /**
  * Perform test whether a configuration file is valid
  *
  * @param string $file
  * @throws PHPUnit_Framework_AssertionFailedError if file is invalid
  */
 protected function _validateConfigFile($file)
 {
     $schemaFile = $this->_model->getSchemaFile();
     $domConfig = new Magento_Config_Dom(file_get_contents($file));
     $result = $domConfig->validate($schemaFile, $errors);
     $message = "Invalid XML-file: {$file}\n";
     foreach ($errors as $error) {
         $message .= "{$error->message} Line: {$error->line}\n";
     }
     $this->assertTrue($result, $message);
 }
Exemple #4
0
 /**
  * @param string $xml
  * @param bool $isExpectedValid
  * @dataProvider validateDataProvider
  */
 public function testValidate($xml, $isExpectedValid)
 {
     $config = new Magento_Config_Dom($xml);
     $schema = __DIR__ . '/_files/sample.xsd';
     if ($isExpectedValid) {
         $this->assertTrue($config->validate($schema));
     } else {
         $errors = array();
         $this->assertFalse($config->validate($schema, $errors));
         $this->assertNotEmpty($errors);
     }
 }
Exemple #5
0
 /**
  * Getter for node by path
  *
  * @param string $nodePath
  * @throws Magento_Exception an exception is possible if original document contains multiple fixed nodes
  * @return DOMElement | null
  */
 protected function _getMatchedNode($nodePath)
 {
     if (!preg_match('/^\\/config(\\/menu)?$/i', $nodePath)) {
         return null;
     }
     return parent::_getMatchedNode($nodePath);
 }
Exemple #6
0
 /**
  * Merge the config XML-files
  *
  * @param array $configFiles
  * @throws Exception if a non-existing or invalid XML-file passed
  */
 protected function _merge($configFiles)
 {
     $domConfig = new Magento_Config_Dom($this->_getInitialXml(), $this->_getIdAttributes());
     foreach ($configFiles as $file) {
         if (!file_exists($file)) {
             throw new Exception("File does not exist: {$file}");
         }
         $domConfig->merge(file_get_contents($file));
         if (!$domConfig->validate($this->getSchemaFile(), $errors)) {
             $message = "Invalid XML-file: {$file}\n";
             /** @var libXMLError $error */
             foreach ($errors as $error) {
                 $message .= "{$error->message} Line: {$error->line}\n";
             }
             throw new Exception($message);
         }
     }
     $this->_dom = $domConfig->getDom();
 }