expectException($throwableClassName); $d = new Document(); $closure($d); $d->destroy(); } public static function provideFatalErrors(): iterable { $iterable = [ // Invalid attribute name [ InvalidCharacterError::class, function (Document $d): void { $d->createAttributeNS('fail', ' '); } ], // Attribute: non-null prefix, null/empty namespace [ NamespaceError::class, function (Document $d): void { $d->createAttributeNS('', 'fail:fail'); } ], // Attribute: prefix is 'xml', namespace is not xml namespace [ NamespaceError::class, function (Document $d): void { $d->createAttributeNS('fail', 'xml:fail'); } ], // Attribute: qualified name is 'xmlns', namespace is not xmlns namespace [ NamespaceError::class, function (Document $d): void { $d->createAttributeNS('fail', 'xmlns'); } ], // Attribute: prefix is 'xmlns', namespace is not xmlns namespace [ NamespaceError::class, function (Document $d): void { $d->createAttributeNS('fail', 'xmlns:fail'); } ] ]; foreach ($iterable as $i) { yield $i; } } }