1--TEST--
2Element::hasAttributeNS()
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7
8$dom = DOM\HTMLDocument::createFromString('<!DOCTYPE html><html><body align="foo" foo:bar="baz"></body></html>');
9$body = $dom->getElementsByTagName("body")[0];
10
11echo "--- After parsing, i.e. without namespace ---\n";
12
13// Every pair of 2 calls should return the same result
14var_dump($body->hasAttributeNS(NULL, "align"));
15var_dump($body->hasAttributeNS("", "align"));
16var_dump($body->hasAttributeNS(NULL, "ALIGN"));
17var_dump($body->hasAttributeNS("", "ALIGN"));
18var_dump($body->hasAttributeNS(NULL, "foo:bar"));
19var_dump($body->hasAttributeNS("", "foo:bar"));
20var_dump($body->hasAttributeNS(NULL, "FOO:BAR"));
21var_dump($body->hasAttributeNS("", "FOO:BAR"));
22
23echo "--- Special legacy case ---\n";
24
25var_dump($dom->documentElement->hasAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns"));
26
27echo "--- Get after creating without namespace ---\n";
28
29$body->setAttributeNode($attr = $dom->createAttribute("prefix:local"));
30$attr->value = "A";
31var_dump($body->hasAttributeNS(NULL, "prefix:local"));
32var_dump($body->hasAttributeNS(NULL, "prefix:LOCAL"));
33
34echo "--- Get after creating with namespace ---\n";
35
36$body->setAttributeNode($attr = $dom->createAttributeNS("urn:a", "prefix:local2"));
37$attr->value = "B";
38var_dump($body->hasAttributeNS("urn:a", "local2"));
39var_dump($body->hasAttributeNS("urn:a", "LOCAL2"));
40
41?>
42--EXPECT--
43--- After parsing, i.e. without namespace ---
44bool(true)
45bool(true)
46bool(false)
47bool(false)
48bool(true)
49bool(true)
50bool(false)
51bool(false)
52--- Special legacy case ---
53bool(false)
54--- Get after creating without namespace ---
55bool(true)
56bool(false)
57--- Get after creating with namespace ---
58bool(true)
59bool(false)
60