mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-07-31 03:10:09 +02:00
Refactor AttrTransform_Lang slightly by changing input output from token to attribute.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@163 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
@@ -1,57 +1,41 @@
|
||||
<?php
|
||||
|
||||
require_once 'HTMLPurifier/Token.php';
|
||||
require_once 'HTMLPurifier/AttrTransformHarness.php';
|
||||
require_once 'HTMLPurifier/AttrTransform/Lang.php';
|
||||
|
||||
class HTMLPurifier_AttrTransform_LangTest extends UnitTestCase
|
||||
class HTMLPurifier_AttrTransform_LangTest
|
||||
extends HTMLPurifier_AttrTransformHarness
|
||||
{
|
||||
|
||||
function test() {
|
||||
|
||||
$transform = new HTMLPurifier_AttrTransform_Lang();
|
||||
$this->transform = new HTMLPurifier_AttrTransform_Lang();
|
||||
|
||||
$inputs = array();
|
||||
$expect = array();
|
||||
|
||||
// leave non-lang'ed elements alone
|
||||
$inputs[0] = new HTMLPurifier_Token_Start('b');
|
||||
$expect[0] = $inputs[0];
|
||||
$inputs[0] = array();
|
||||
$expect[0] = true;
|
||||
|
||||
// copy lang to xml:lang
|
||||
$inputs[1] = new HTMLPurifier_Token_Start('span',
|
||||
array('lang' => 'en'));
|
||||
$expect[1] = new HTMLPurifier_Token_Start('span',
|
||||
array('lang' => 'en',
|
||||
'xml:lang' => 'en'));
|
||||
$inputs[1] = array('lang' => 'en');
|
||||
$expect[1] = array('lang' => 'en', 'xml:lang' => 'en');
|
||||
|
||||
// empty tags must work too, also test attribute preservation
|
||||
$inputs[2] = new HTMLPurifier_Token_Empty('img',
|
||||
array('src' => 'seine.png',
|
||||
'lang' => 'fr'));
|
||||
$expect[2] = new HTMLPurifier_Token_Empty('img',
|
||||
array('src' => 'seine.png',
|
||||
'lang' => 'fr',
|
||||
'xml:lang' => 'fr'));
|
||||
// preserve attributes
|
||||
$inputs[2] = array('src' => 'vert.png', 'lang' => 'fr');
|
||||
$expect[2] = array('src' => 'vert.png', 'lang' => 'fr', 'xml:lang' => 'fr');
|
||||
|
||||
// copy xml:lang to lang
|
||||
$inputs[3] = new HTMLPurifier_Token_Start('span',
|
||||
array('xml:lang' => 'en'));
|
||||
$expect[3] = new HTMLPurifier_Token_Start('span',
|
||||
array('lang' => 'en',
|
||||
'xml:lang' => 'en'));
|
||||
$inputs[3] = array('xml:lang' => 'en');
|
||||
$expect[3] = array('lang' => 'en', 'xml:lang' => 'en');
|
||||
|
||||
// both set, override lang with xml:lang
|
||||
$inputs[4] = new HTMLPurifier_Token_Start('span',
|
||||
array('lang' => 'fr',
|
||||
'xml:lang' => 'de'));
|
||||
$expect[4] = new HTMLPurifier_Token_Start('span',
|
||||
array('lang' => 'de',
|
||||
'xml:lang' => 'de'));
|
||||
$inputs[4] = array('lang' => 'fr', 'xml:lang' => 'de');
|
||||
$expect[4] = array('lang' => 'de', 'xml:lang' => 'de');
|
||||
|
||||
foreach ($inputs as $i => $input) {
|
||||
$result = $transform->transform($input);
|
||||
$this->assertEqual($expect[$i], $result, "Test $i: %s");
|
||||
}
|
||||
$this->assertTransform($inputs, $expect);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user