$this->assertEquals('<strong>escaped!</strong>',Escaper::escape('raw','<strong>escaped!</strong>'),'::escape() takes an escaping strategy function name as its first argument');
$this->assertEquals('<strong>escaped!</strong>',Escaper::escape('entities','<strong>escaped!</strong>'),'::escape() returns an escaped string if the value to escape is a string');
$this->assertEquals('<strong>échappé</strong>',Escaper::escape('entities','<strong>échappé</strong>'),'::escape() returns an escaped string if the value to escape is a string');
$this->assertInstanceOf('Symfony\Components\OutputEscaper\ArrayDecorator',$output,'::escape() returns a ArrayDecorator object if the value to escape is an array');
$this->assertInstanceOf('Symfony\Components\OutputEscaper\ObjectDecorator',$output,'::escape() returns a ObjectDecorator object if the value to escape is an object');
$this->assertEquals('<strong>escaped!</strong>',Escaper::escape('entities',$output)->getTitle(),'::escape() does not double escape an object');
$this->assertInstanceOf('Symfony\Components\OutputEscaper\IteratorDecorator',Escaper::escape('entities',new\DirectoryIterator('.')),'::escape() returns a IteratorDecorator object if the value to escape is an object that implements the ArrayAccess interface');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',Escaper::escape('entities',newSafeDecorator(newOutputEscaperTestClass())),'::escape() returns the original value if it is marked as being safe');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',Escaper::escape('entities',newOutputEscaperTestClass()),'::escape() returns the original value if the object class is marked as being safe');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',Escaper::escape('entities',newOutputEscaperTestClassChild()),'::escape() returns the original value if one of the object parent class is marked as being safe');
$this->assertEquals('<strong>escaped!</strong>',Escaper::unescape('<strong>escaped!</strong>'),'::unescape() returns an unescaped string if the value to unescape is a string');
$this->assertEquals('<strong>échappé</strong>',Escaper::unescape('<strong>échappé</strong>'),'::unescape() returns an unescaped string if the value to unescape is a string');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',$output,'::unescape() returns the original object when a ObjectDecorator object is passed');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',Escaper::unescape(Escaper::escape('entities',newSafeDecorator(newOutputEscaperTestClass()))),'::unescape() returns the original value if it is marked as being safe');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',Escaper::unescape(Escaper::escape('entities',newOutputEscaperTestClass())),'::unescape() returns the original value if the object class is marked as being safe');
$this->assertInstanceOf('Symfony\Tests\Components\OutputEscaper\OutputEscaperTestClass',Escaper::unescape(Escaper::escape('entities',newOutputEscaperTestClassChild())),'::unescape() returns the original value if one of the object parent class is marked as being safe');