1--TEST--
2Test: registerNodeClass()
3--SKIPIF--
4<?php require_once('skipif.inc'); ?>
5--FILE--
6<?php
7class myAttribute extends DOMAttr {
8   function testit() { return "HELLO Attribute"; }
9}
10
11class myElement extends DOMElement {
12   function testit() { return "HELLO Element"; }
13}
14
15$doc = new DOMDocument();
16$doc->registerNodeClass('DOMAttr', 'myAttribute');
17$doc->registerNodeClass('DOMElement', 'myElement');
18$doc->appendChild(new DOMElement('root'));
19$root = $doc->documentElement;
20$root->setAttribute('a', 'a1');
21echo get_class($root), "\n";
22print $root->testit()."\n";
23$attr = $root->getAttributeNode('a');
24echo get_class($attr), "\n";
25print $attr->testit()."\n";
26unset($attr);
27$doc->registerNodeClass('DOMAttr', NULL);
28$attr = $root->getAttributeNode('a');
29echo get_class($attr), "\n";
30try {
31    print $attr->testit()."\n";
32} catch (Error $e) {
33    echo $e->getMessage();
34}
35?>
36--EXPECT--
37myElement
38HELLO Element
39myAttribute
40HELLO Attribute
41DOMAttr
42Call to undefined method DOMAttr::testit()
43