* @license The GNU Lesser GPL (LGPL) or an MIT-like license. */ namespace QueryPath\Tests; require_once __DIR__ . '/TestCase.php'; /** * @ingroup querypath_tests */ class EntitiesTest extends TestCase { public function testReplaceEntity() { $entity = 'amp'; $this->assertEquals('38', \QueryPath\Entities::replaceEntity($entity)); $entity = 'lceil'; $this->assertEquals('8968', \QueryPath\Entities::replaceEntity($entity)); } public function testReplaceAllEntities() { $test = '&©&& nothing.'; $expect = '&©&& nothing.'; $this->assertEquals($expect, \QueryPath\Entities::replaceAllEntities($test)); $test = '&&& '; $expect = '&&& '; $this->assertEquals($expect, \QueryPath\Entities::replaceAllEntities($test)); $test = "é\n"; $expect = "é\n"; $this->assertEquals($expect, \QueryPath\Entities::replaceAllEntities($test)); } public function testReplaceHexEntities() { $test = '©'; $expect = '©'; $this->assertEquals($expect, \QueryPath\Entities::replaceAllEntities($test)); } public function testQPEntityReplacement() { $test = '&©&& nothing.'; /*$expect = '&©&& nothing.';*/ // We get this because the DOM serializer re-converts entities. $expect = ' &©&& nothing.'; $qp = qp($test, NULL, array('replace_entities' => TRUE)); // Interestingly, the XML serializer converts decimal to hex and ampersands // to &. $this->assertEquals($expect, trim($qp->xml())); } }