PHPUnit_Framework_Assert::assertEqualXMLStructure PHP Method

assertEqualXMLStructure() public static method

Asserts that a hierarchy of DOMElements matches.
public static assertEqualXMLStructure ( DOMElement $expectedElement, DOMElement $actualElement, boolean $checkAttributes = false, string $message = '' )
$expectedElement DOMElement
$actualElement DOMElement
$checkAttributes boolean
$message string
    public static function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, $checkAttributes = false, $message = '')
    {
        $tmp = new DOMDocument();
        $expectedElement = $tmp->importNode($expectedElement, true);
        $tmp = new DOMDocument();
        $actualElement = $tmp->importNode($actualElement, true);
        unset($tmp);
        static::assertEquals($expectedElement->tagName, $actualElement->tagName, $message);
        if ($checkAttributes) {
            static::assertEquals($expectedElement->attributes->length, $actualElement->attributes->length, sprintf('%s%sNumber of attributes on node "%s" does not match', $message, !empty($message) ? "\n" : '', $expectedElement->tagName));
            for ($i = 0; $i < $expectedElement->attributes->length; $i++) {
                $expectedAttribute = $expectedElement->attributes->item($i);
                $actualAttribute = $actualElement->attributes->getNamedItem($expectedAttribute->name);
                if (!$actualAttribute) {
                    static::fail(sprintf('%s%sCould not find attribute "%s" on node "%s"', $message, !empty($message) ? "\n" : '', $expectedAttribute->name, $expectedElement->tagName));
                }
            }
        }
        PHPUnit_Util_XML::removeCharacterDataNodes($expectedElement);
        PHPUnit_Util_XML::removeCharacterDataNodes($actualElement);
        static::assertEquals($expectedElement->childNodes->length, $actualElement->childNodes->length, sprintf('%s%sNumber of child nodes of "%s" differs', $message, !empty($message) ? "\n" : '', $expectedElement->tagName));
        for ($i = 0; $i < $expectedElement->childNodes->length; $i++) {
            static::assertEqualXMLStructure($expectedElement->childNodes->item($i), $actualElement->childNodes->item($i), $checkAttributes, $message);
        }
    }

Usage Example

Example #1
0
/**
 * Asserts that a hierarchy of DOMNodes matches.
 *
 * @param DOMNode $expectedNode
 * @param DOMNode $actualNode
 * @param boolean $checkAttributes
 * @param string  $message
 * @author Mattis Stordalen Flister <*****@*****.**>
 * @since  Method available since Release 3.3.0
 */
function assertEqualXMLStructure(DOMNode $expectedNode, DOMNode $actualNode, $checkAttributes = FALSE, $message = '')
{
    return PHPUnit_Framework_Assert::assertEqualXMLStructure($expectedNode, $actualNode, $checkAttributes, $message);
}
All Usage Examples Of PHPUnit_Framework_Assert::assertEqualXMLStructure
PHPUnit_Framework_Assert