saveHTML();
return $out;
}
public function testSaveHTML() {
$html = '
test';
$dom = \HTML5::parse($html);
$this->assertTrue($dom instanceof \DOMDocument, "Canary");
$ser = new \HTML5\Serializer($dom, FALSE);
$out = $ser->saveHTML();
$this->assertTrue(count($out) >= count($html), 'Byte counts');
$this->assertRegExp('//', $out, 'Has DOCTYPE.');
$this->assertRegExp('/test<\/body>/', $out, 'Has body text.');
}
public function testSave() {
$html = 'test';
$dom = \HTML5::parse($html);
$this->assertTrue($dom instanceof \DOMDocument, "Canary");
$ser = new \HTML5\Serializer($dom, FALSE);
$out = fopen("php://temp", "w");
$ser->save($out);
rewind($out);
$res = stream_get_contents($out);
$this->assertTrue(count($res) >= count($html));
}
public function testElements() {
// Should have content.
$res = $this->cycle('FOO
');
$this->assertRegExp('|FOO
|', $res);
// Should be empty
$res = $this->cycle('');
$this->assertRegExp('||', $res);
// Should have no closing tag.
$res = $this->cycle('
');
$this->assertRegExp('|
|', $res);
}
public function testAttributes() {
$res = $this->cycle('FOO
');
$this->assertRegExp('|FOO
|', $res);
// XXX: Note that spec does NOT require attrs in the same order.
$res = $this->cycle('FOO
');
$this->assertRegExp('|FOO
|', $res);
$res = $this->cycle('FOO
');
$this->assertRegExp('|FOO
|', $res);
}
public function testPCData() {
$res = $this->cycle('This is a test.');
$this->assertRegExp('|This is a test.|', $res);
$res = $this->cycle('This
is
a
test.');
// Check that newlines are there, but don't count spaces.
$this->assertRegExp('|This\n\s*is\n\s*a\n\s*test.|', $res);
$res = $this->cycle('This is a test.');
$this->assertRegExp('|This is a test.|', $res);
}
public function testUnescaped() {
$res = $this->cycle('');
$this->assertRegExp('|2 < 1|', $res);
$res = $this->cycle('');
$this->assertRegExp('|div>div>div|', $res);
}
public function testEntities() {
$res = $this->cycle('Apples & bananas.');
$this->assertRegExp('|Apples & bananas.|', $res);
}
public function testComment() {
$res = $this->cycle('ab');
$this->assertRegExp('||', $res);
}
// FAILS because the parser converts CDATA to a comment. Issue #2.
public function testCDATA() {
$res = $this->cycle('a a test. ]]>b');
$this->assertRegExp('| a test. ]]>|', $res);
}
}