diff --git a/tests/HTMLPurifier/AttrTransform/BdoDirTest.php b/tests/HTMLPurifier/AttrTransform/BdoDirTest.php index 0762359d..4f880046 100644 --- a/tests/HTMLPurifier/AttrTransform/BdoDirTest.php +++ b/tests/HTMLPurifier/AttrTransform/BdoDirTest.php @@ -5,29 +5,24 @@ require_once 'HTMLPurifier/AttrTransform/BdoDir.php'; class HTMLPurifier_AttrTransform_BdoDirTest extends HTMLPurifier_AttrTransformHarness { + function setUp() { + parent::setUp(); + $this->obj = new HTMLPurifier_AttrTransform_BdoDir(); + } + function test() { - $this->transform = new HTMLPurifier_AttrTransform_BdoDir(); - - $inputs = array(); - $expect = array(); - $config = array(); - - // add dir - $inputs[0] = array(); - $expect[0] = array('dir' => 'ltr'); + $this->assertResult( array(), array('dir' => 'ltr') ); // leave existing dir alone - $inputs[1] = array('dir' => 'rtl'); - $expect[1] = array('dir' => 'rtl'); + $this->assertResult( array('dir' => 'rtl') ); - $config_rtl = HTMLPurifier_Config::createDefault(); - $config_rtl->set('Attr', 'DefaultTextDir', 'rtl'); - $inputs[2] = array(); - $expect[2] = array('dir' => 'rtl'); - $config[2] = $config_rtl; - - $this->assertTransform($inputs, $expect, $config); + // use a different default + $this->assertResult( + array(), + array('dir' => 'rtl'), + array('Attr.DefaultTextDir' => 'rtl') + ); } diff --git a/tests/HTMLPurifier/AttrTransform/ImgRequiredTest.php b/tests/HTMLPurifier/AttrTransform/ImgRequiredTest.php index c410b29f..f8b89f44 100644 --- a/tests/HTMLPurifier/AttrTransform/ImgRequiredTest.php +++ b/tests/HTMLPurifier/AttrTransform/ImgRequiredTest.php @@ -5,28 +5,36 @@ require_once 'HTMLPurifier/AttrTransform/ImgRequired.php'; class HTMLPurifier_AttrTransform_ImgRequiredTest extends HTMLPurifier_AttrTransformHarness { + function setUp() { + parent::setUp(); + $this->obj = new HTMLPurifier_AttrTransform_ImgRequired(); + } + function test() { - $this->transform = new HTMLPurifier_AttrTransform_ImgRequired(); + $this->assertResult( + array(), + array('src' => '', 'alt' => 'Invalid image') + ); - $inputs = $expect = $config = array(); + $this->assertResult( + array(), + array('src' => 'blank.png', 'alt' => 'Pawned!'), + array( + 'Attr.DefaultInvalidImage' => 'blank.png', + 'Attr.DefaultInvalidImageAlt' => 'Pawned!' + ) + ); - $inputs[0] = array(); - $expect[0] = array('src' => '', 'alt' => 'Invalid image'); + $this->assertResult( + array('src' => '/path/to/foobar.png'), + array('src' => '/path/to/foobar.png', 'alt' => 'foobar.png') + ); - $inputs[1] = array(); - $expect[1] = array('src' => 'blank.png', 'alt' => 'Pawned!'); - $config[1] = HTMLPurifier_Config::createDefault(); - $config[1]->set('Attr', 'DefaultInvalidImage', 'blank.png'); - $config[1]->set('Attr', 'DefaultInvalidImageAlt', 'Pawned!'); - - $inputs[2] = array('src' => '/path/to/foobar.png'); - $expect[2] = array('src' => '/path/to/foobar.png', 'alt' => 'foobar.png'); - - $inputs[3] = array('alt' => 'intrigue'); - $expect[3] = array('src' => '', 'alt' => 'intrigue'); - - $this->assertTransform($inputs, $expect, $config); + $this->assertResult( + array('alt' => 'intrigue'), + array('src' => '', 'alt' => 'intrigue') + ); } diff --git a/tests/HTMLPurifier/AttrTransform/LangTest.php b/tests/HTMLPurifier/AttrTransform/LangTest.php index 9609e137..b4800990 100644 --- a/tests/HTMLPurifier/AttrTransform/LangTest.php +++ b/tests/HTMLPurifier/AttrTransform/LangTest.php @@ -8,34 +8,39 @@ class HTMLPurifier_AttrTransform_LangTest extends HTMLPurifier_AttrTransformHarness { + function setUp() { + parent::setUp(); + $this->obj = new HTMLPurifier_AttrTransform_Lang(); + } + function test() { - $this->transform = new HTMLPurifier_AttrTransform_Lang(); - - $inputs = array(); - $expect = array(); - // leave non-lang'ed elements alone - $inputs[0] = array(); - $expect[0] = true; + $this->assertResult(array(), true); // copy lang to xml:lang - $inputs[1] = array('lang' => 'en'); - $expect[1] = array('lang' => 'en', 'xml:lang' => 'en'); + $this->assertResult( + array('lang' => 'en'), + array('lang' => 'en', 'xml:lang' => 'en') + ); // preserve attributes - $inputs[2] = array('src' => 'vert.png', 'lang' => 'fr'); - $expect[2] = array('src' => 'vert.png', 'lang' => 'fr', 'xml:lang' => 'fr'); + $this->assertResult( + array('src' => 'vert.png', 'lang' => 'fr'), + array('src' => 'vert.png', 'lang' => 'fr', 'xml:lang' => 'fr') + ); // copy xml:lang to lang - $inputs[3] = array('xml:lang' => 'en'); - $expect[3] = array('lang' => 'en', 'xml:lang' => 'en'); + $this->assertResult( + array('xml:lang' => 'en'), + array('lang' => 'en', 'xml:lang' => 'en') + ); // both set, override lang with xml:lang - $inputs[4] = array('lang' => 'fr', 'xml:lang' => 'de'); - $expect[4] = array('lang' => 'de', 'xml:lang' => 'de'); - - $this->assertTransform($inputs, $expect); + $this->assertResult( + array('lang' => 'fr', 'xml:lang' => 'de'), + array('lang' => 'de', 'xml:lang' => 'de') + ); } diff --git a/tests/HTMLPurifier/AttrTransform/TextAlignTest.php b/tests/HTMLPurifier/AttrTransform/TextAlignTest.php index c750b8b3..858db75c 100644 --- a/tests/HTMLPurifier/AttrTransform/TextAlignTest.php +++ b/tests/HTMLPurifier/AttrTransform/TextAlignTest.php @@ -5,48 +5,58 @@ require_once 'HTMLPurifier/AttrTransform/TextAlign.php'; class HTMLPurifier_AttrTransform_TextAlignTest extends HTMLPurifier_AttrTransformHarness { + function setUp() { + parent::setUp(); + $this->obj = new HTMLPurifier_AttrTransform_TextAlign(); + } + function test() { - $this->transform = new HTMLPurifier_AttrTransform_TextAlign(); - - $inputs = array(); - $expect = array(); - // leave empty arrays alone - $inputs[0] = array(); - $expect[0] = true; + $this->assertResult( array() ); // leave arrays without interesting stuff alone - $inputs[1] = array('style' => 'font-weight:bold;'); - $expect[1] = true; + $this->assertResult( array('style' => 'font-weight:bold;') ); // test each of the conversions - $inputs[2] = array('align' => 'left'); - $expect[2] = array('style' => 'text-align:left;'); + $this->assertResult( + array('align' => 'left'), + array('style' => 'text-align:left;') + ); - $inputs[3] = array('align' => 'right'); - $expect[3] = array('style' => 'text-align:right;'); + $this->assertResult( + array('align' => 'right'), + array('style' => 'text-align:right;') + ); - $inputs[4] = array('align' => 'center'); - $expect[4] = array('style' => 'text-align:center;'); + $this->assertResult( + array('align' => 'center'), + array('style' => 'text-align:center;') + ); - $inputs[5] = array('align' => 'justify'); - $expect[5] = array('style' => 'text-align:justify;'); + $this->assertResult( + array('align' => 'justify'), + array('style' => 'text-align:justify;') + ); // drop garbage value - $inputs[6] = array('align' => 'invalid'); - $expect[6] = array(); + $this->assertResult( + array('align' => 'invalid'), + array() + ); // test CSS munging - $inputs[7] = array('align' => 'left', 'style' => 'font-weight:bold;'); - $expect[7] = array('style' => 'text-align:left;font-weight:bold;'); + $this->assertResult( + array('align' => 'left', 'style' => 'font-weight:bold;'), + array('style' => 'text-align:left;font-weight:bold;') + ); // test case insensitivity - $inputs[8] = array('align' => 'CENTER'); - $expect[8] = array('style' => 'text-align:center;'); - - $this->assertTransform($inputs, $expect); + $this->assertResult( + array('align' => 'CENTER'), + array('style' => 'text-align:center;') + ); } diff --git a/tests/HTMLPurifier/AttrTransformHarness.php b/tests/HTMLPurifier/AttrTransformHarness.php index 689799c4..aff1d6b7 100644 --- a/tests/HTMLPurifier/AttrTransformHarness.php +++ b/tests/HTMLPurifier/AttrTransformHarness.php @@ -1,23 +1,12 @@ $input) { - if (!isset($config[$i])) $config[$i] = $default_config; - if (!isset($context[$i])) $context[$i] = $default_context; - $result = $this->transform->transform($input, $config[$i], $context[$i]); - if ($expect[$i] === true) $expect[$i] = $input; - $this->assertEqual($expect[$i], $result, "Test $i: %s"); - } + function setUp() { + $this->func = 'transform'; } }