diff options
Diffstat (limited to 'lib/querypath/test/Tests/QueryPath/EntitiesTest.php')
-rw-r--r-- | lib/querypath/test/Tests/QueryPath/EntitiesTest.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/querypath/test/Tests/QueryPath/EntitiesTest.php b/lib/querypath/test/Tests/QueryPath/EntitiesTest.php new file mode 100644 index 0000000..62a3426 --- /dev/null +++ b/lib/querypath/test/Tests/QueryPath/EntitiesTest.php @@ -0,0 +1,54 @@ +<?php +/** @file + * Tests for the QueryPath library. + * @author M Butcher <matt@aleph-null.tv> + * @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 = '<?xml version="1.0"?><root>&©&& nothing.</root>'; + $expect = '<?xml version="1.0"?><root>&©&& nothing.</root>'; + $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 = '<?xml version="1.0"?><root>&©&& nothing.</root>'; + /*$expect = '<?xml version="1.0"?><root>&©&& nothing.</root>';*/ + // We get this because the DOM serializer re-converts entities. + $expect = '<?xml version="1.0"?> +<root>&©&& nothing.</root>'; + + $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())); + } +} |