diff --git a/setup/itopdesignformat.class.inc.php b/setup/itopdesignformat.class.inc.php index af7f89396..539d08632 100644 --- a/setup/itopdesignformat.class.inc.php +++ b/setup/itopdesignformat.class.inc.php @@ -898,7 +898,10 @@ class iTopDesignFormat $oNodeList = $oXPath->query("/itop_design/classes//class/fields/field/values/value"); foreach ($oNodeList as $oNode) { $sCode = $oNode->textContent; - $oNode->textContent = ''; + // N°6562 textContent is readonly, see https://www.php.net/manual/en/class.domnode.php#95545 +// $oNode->textContent = ''; + // N°6562 to update text node content we must use the node methods ! + $oNode->removeChild($oNode->firstChild); $oCodeNode = $oNode->ownerDocument->createElement("code", $sCode); $oNode->appendChild($oCodeNode); } @@ -988,7 +991,12 @@ class iTopDesignFormat if ($oStyleNode) { $this->DeleteNode($oStyleNode); } - $oNode->textContent = $sCode; + + // N°6562 textContent is readonly, see https://www.php.net/manual/en/class.domnode.php#95545 +// $oNode->textContent = $sCode; + // N°6562 to update text node content we must use the node methods ! + $oTextContentNode = new DOMText($sCode); + $oNode->appendChild($oTextContentNode); } } // - Style diff --git a/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/iTopDesignFormatTest.php b/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/iTopDesignFormatTest.php index 83f6112a6..a68ab04ea 100644 --- a/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/iTopDesignFormatTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/iTopDesignFormatTest.php @@ -59,12 +59,6 @@ class iTopDesignFormatTest extends ItopTestCase $sInputXml = $this->GetFileContent($sSamplesRelDirPath.$sXmlFileName.'.input'); $oInputDesignFormat = static::GetItopFormatFromString($sInputXml); - // N°6562 Disable test for 1.7 => 3.0 conversion on PHP 8.1.21 / 8.2.8 as it is failing due to unknown reason. Cause will be investigated next week. - if ((PHP_VERSION_ID === 80121 || PHP_VERSION_ID === 80208) - && $oInputDesignFormat->GetVersion() === "1.7" && $sTargetVersion === "3.0") { - $this->markTestSkipped("Skip test for 1.7 => 3.0 conversion on PHP 8.1.21 as it is failing due to unknown reason. Cause will be investigated next week."); - } - $bResult = $oInputDesignFormat->Convert($sTargetVersion); $aErrors = $oInputDesignFormat->GetErrors(); $this->assertCount($iExpectedErrors, $aErrors, @@ -109,12 +103,6 @@ class iTopDesignFormatTest extends ItopTestCase $oExpectedDesignFormat = static::GetItopFormatFromString($sExpectedXml); $sExpectedVersion = $oExpectedDesignFormat->GetVersion(); - // N°6562 Disable test for 1.7 => 3.0 conversion on PHP 8.1.21 / 8.2.8 as it is failing due to unknown reason. Cause will be investigated next week. - if ((PHP_VERSION_ID === 80121 || PHP_VERSION_ID === 80208) - && $sInputVersion === "1.7" && $sExpectedVersion === "3.0") { - $this->markTestSkipped("Skip test for 1.7 => 3.0 conversion on PHP 8.1.21 as it is failing due to unknown reason. Cause will be investigated next week."); - } - if (version_compare($sInputVersion, $sExpectedVersion, '>=')) { $this->markTestSkipped("This dataset correspond to a downward conversion ($sInputVersion to $sExpectedVersion) and we want to test upwards conversions => skipping !"); }