* @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()));
  }
}