Browse Source

Lowercase in createElementNS

split-manual
J. King 3 years ago
parent
commit
16acfa8d66
  1. 2
      lib/DOM/Document.php
  2. 28
      tests/cases/TestDOM.php

2
lib/DOM/Document.php

@ -100,7 +100,7 @@ class Document extends \DOMDocument {
$namespaceURI = trim($namespaceURI);
$namespaceURI = ($namespaceURI === Parser::HTML_NAMESPACE) ? null : $namespaceURI;
}
$qualifiedName = trim($qualifiedName);
$qualifiedName = ($namespaceURI === null) ? strtolower(trim($qualifiedName)) : trim($qualifiedName);
try {
if ($qualifiedName !== 'template' || $namespaceURI !== null) {

28
tests/cases/TestDOM.php

@ -18,24 +18,30 @@ use MensBeam\HTML\Document;
*/
class TestDOM extends \PHPUnit\Framework\TestCase {
/** @dataProvider provideNamespacedElements */
public function testCreateNamespacedElements(?string $ns, string $name, string $local, string $prefix): void {
public function testCreateNamespacedElements(?string $nsIn, string $nameIn, ?string $nsOut, string $local, string $prefix): void {
$d = new Document;
$e = $d->createElementNS($ns, $name);
$this->assertSame($ns, $e->namespaceURI);
$e = $d->createElementNS($nsIn, $nameIn);
$this->assertSame($nsOut, $e->namespaceURI);
$this->assertSame($local, $e->localName);
$this->assertSame($prefix, $e->prefix);
}
public function provideNamespacedElements(): iterable {
return [
[null, "test", "test", ""],
[null, "test:test", "testU00003Atest", ""],
["http://www.w3.org/2000/svg", "svg", "svg", ""],
["http://www.w3.org/2000/svg", "svg:svg", "svg", "svg"],
["fake_ns", "test:test", "test", "test"],
["fake_ns", "test:test:test", "testU00003Atest", "test"],
["fake_ns", "te st:test", "test", "teU000020st"],
[null, "9", "U000039", ""],
[null, "test", null, "test", ""],
[null, "test:test", null, "testU00003Atest", ""],
["http://www.w3.org/2000/svg", "svg", "http://www.w3.org/2000/svg", "svg", ""],
["http://www.w3.org/2000/svg", "svg:svg", "http://www.w3.org/2000/svg", "svg", "svg"],
["fake_ns", "test:test", "fake_ns", "test", "test"],
["fake_ns", "test:test:test", "fake_ns", "testU00003Atest", "test"],
["fake_ns", "te st:test", "fake_ns", "test", "teU000020st"],
[null, "9", null, "U000039", ""],
["http://www.w3.org/1999/xhtml", "test", null, "test", ""],
["http://www.w3.org/1999/xhtml", "TEST", null, "test", ""],
[null, "TEST", null, "test", ""],
["fake_ns", "TEST", "fake_ns", "TEST", ""],
["http://www.w3.org/2000/svg", "TEST", "http://www.w3.org/2000/svg", "TEST", ""],
["http://www.w3.org/1998/Math/MathML", "TEST", "http://www.w3.org/1998/Math/MathML", "TEST", ""],
];
}
}

Loading…
Cancel
Save