summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/HTML5/Parser/DOMTreeBuilder.php4
-rw-r--r--test/HTML5/Html5Test.php38
2 files changed, 38 insertions, 4 deletions
diff --git a/src/HTML5/Parser/DOMTreeBuilder.php b/src/HTML5/Parser/DOMTreeBuilder.php
index 82ec520..5df4177 100644
--- a/src/HTML5/Parser/DOMTreeBuilder.php
+++ b/src/HTML5/Parser/DOMTreeBuilder.php
@@ -156,7 +156,7 @@ class DOMTreeBuilder implements EventHandler {
case 'svg':
$this->insertMode = self::IM_IN_SVG;
break;
- case 'mathml':
+ case 'math':
$this->insertMode = self::IM_IN_MATHML;
break;
case 'noscript':
@@ -180,7 +180,7 @@ class DOMTreeBuilder implements EventHandler {
$aName = Elements::normalizeSvgAttribute($aName);
}
elseif ($this->insertMode == self::IM_IN_MATHML) {
- $aName = Elements::normalizeMathMlAttribute($aname);
+ $aName = Elements::normalizeMathMlAttribute($aName);
}
$ele->setAttribute($aName, $aVal);
diff --git a/test/HTML5/Html5Test.php b/test/HTML5/Html5Test.php
index 88875a7..442fe63 100644
--- a/test/HTML5/Html5Test.php
+++ b/test/HTML5/Html5Test.php
@@ -98,7 +98,7 @@ class Html5Test extends TestCase {
// Test a mixed case attribute.
$list = $dom->getElementsByTagName('svg');
- $this->assertNotEmpty($list);
+ $this->assertNotEmpty($list->length);
$svg = $list->item(0);
$this->assertEquals("0 0 3 2", $svg->getAttribute('viewBox'));
$this->assertFalse($svg->hasAttribute('viewbox'));
@@ -106,7 +106,7 @@ class Html5Test extends TestCase {
// Test a mixed case tag.
// Note: getElementsByTagName is not case sensetitive.
$list = $dom->getElementsByTagName('textPath');
- $this->assertNotEmpty($list);
+ $this->assertNotEmpty($list->length);
$textPath = $list->item(0);
$this->assertEquals('textPath', $textPath->tagName);
$this->assertNotEquals('textpath', $textPath->tagName);
@@ -117,4 +117,38 @@ class Html5Test extends TestCase {
}
+ public function testMathMl() {
+ $dom = \HTML5::loadHTML('<!doctype html>
+ <html lang="en">
+ <body>
+ <div id="foo" class="bar baz" definitionURL="http://example.com">foo bar baz</div>
+ <math>
+ <mi>x</mi>
+ <csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">
+ <mo>&PlusMinus;</mo>
+ </csymbol>
+ <mi>y</mi>
+ </math>
+ </body>
+ </html>');
+
+ $this->assertEmpty($dom->errors);
+ $list = $dom->getElementsByTagName('math');
+ $this->assertNotEmpty($list->length);
+
+ $list = $dom->getElementsByTagName('div');
+ $this->assertNotEmpty($list->length);
+ $div = $list->item(0);
+ $this->assertEquals('http://example.com', $div->getAttribute('definitionurl'));
+ $this->assertFalse($div->hasAttribute('definitionURL'));
+ $list = $dom->getElementsByTagName('csymbol');
+ $csymbol = $list->item(0);
+ $this->assertEquals('http://www.example.com/mathops/multiops.html#plusminus', $csymbol->getAttribute('definitionURL'));
+ $this->assertFalse($csymbol->hasAttribute('definitionurl'));
+
+ $html = \HTML5::saveHTML($dom);
+ $this->assertRegExp('|<csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">|',$html);
+ $this->assertRegExp('|<mi>y</mi>|',$html);
+ }
+
}