1--TEST--
2DOM\Node::lookupPrefix()
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7
8$dom = DOM\XMLDocument::createFromString(<<<XML
9<?xml version="1.0"?>
10<!DOCTYPE html>
11<html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="test">
12    <body>
13        <svg:svg xmlns:svg="http://www.w3.org/2000/svg" height="1"/>
14        <p xmlns:y="test">
15            <x/>
16        </p>
17    </body>
18</html>
19XML);
20
21$body = $dom->getElementsByTagName("body")[0];
22$body->setAttribute("xmlns:a", "urn:a");
23
24echo "--- NULL case because invalid node type ---\n";
25
26var_dump($dom->doctype->lookupPrefix(""));
27
28echo "--- NULL case because xmlns attribute not in xmlns namespace ---\n";
29
30var_dump($body->lookupPrefix("urn:a"));
31
32echo "--- svg case ---\n";
33
34$svg = $dom->getElementsByTagNameNS("*", "svg")[0];
35
36var_dump($svg->lookupPrefix(""));
37var_dump($svg->lookupPrefix("http://www.w3.org/2000/svg"));
38var_dump($svg->lookupPrefix("1"));
39
40echo "--- search for \"test\" ---\n";
41
42foreach (['x', 'p', 'html'] as $name) {
43    $x = $dom->getElementsByTagNameNS("*", $name)[0];
44    var_dump($x->lookupPrefix(""));
45    var_dump($x->lookupPrefix("test"));
46}
47
48?>
49--EXPECT--
50--- NULL case because invalid node type ---
51NULL
52--- NULL case because xmlns attribute not in xmlns namespace ---
53NULL
54--- svg case ---
55NULL
56string(3) "svg"
57NULL
58--- search for "test" ---
59NULL
60string(1) "y"
61NULL
62string(1) "y"
63NULL
64string(1) "x"
65