aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/HTMLPurifier/AttrDef
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-07-18 03:59:10 -0700
committerfriendica <info@friendica.com>2012-07-18 03:59:10 -0700
commit22cf19e174bcee88b44968f2773d1bad2da2b54d (patch)
treef4e01db6f73754418438b020c2327e18c256653c /lib/htmlpurifier/tests/HTMLPurifier/AttrDef
parent7a40f4354b32809af3d0cfd6e3af0eda02ab0e0a (diff)
downloadvolse-hubzilla-22cf19e174bcee88b44968f2773d1bad2da2b54d.tar.gz
volse-hubzilla-22cf19e174bcee88b44968f2773d1bad2da2b54d.tar.bz2
volse-hubzilla-22cf19e174bcee88b44968f2773d1bad2da2b54d.zip
bad sync with github windows client
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/AttrDef')
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/AlphaValueTest.php28
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundPositionTest.php68
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundTest.php23
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BorderTest.php21
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ColorTest.php41
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/CompositeTest.php81
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FilterTest.php29
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontFamilyTest.php52
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontTest.php34
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ImportantDecoratorTest.php49
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/LengthTest.php48
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ListStyleTest.php35
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/MultipleTest.php28
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/NumberTest.php51
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/PercentageTest.php24
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/TextDecorationTest.php27
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/URITest.php29
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSSTest.php164
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/EnumTest.php37
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/BoolTest.php22
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ClassTest.php48
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ColorTest.php20
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/FrameTargetTest.php28
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/IDTest.php108
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LengthTest.php32
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LinkTypesTest.php21
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/MultiLengthTest.php28
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/NmtokensTest.php35
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/PixelsTest.php45
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/IntegerTest.php61
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/LangTest.php85
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/SwitchTest.php34
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/TextTest.php17
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/Email/SimpleCheckTest.php13
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/EmailHarness.php31
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/HostTest.php53
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv4Test.php25
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv6Test.php43
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URITest.php146
39 files changed, 0 insertions, 1764 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/AlphaValueTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/AlphaValueTest.php
deleted file mode 100644
index 56efa306f..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/AlphaValueTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_AlphaValueTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_AlphaValue();
-
- $this->assertDef('0');
- $this->assertDef('1');
- $this->assertDef('.2');
-
- // clamping to [0.0, 1,0]
- $this->assertDef('1.2', '1');
- $this->assertDef('-3', '0');
-
- $this->assertDef('0.0', '0');
- $this->assertDef('1.0', '1');
- $this->assertDef('000', '0');
-
- $this->assertDef('asdf', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundPositionTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundPositionTest.php
deleted file mode 100644
index a216b2677..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundPositionTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_BackgroundPositionTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
-
- // explicitly cited in spec
- $this->assertDef('0% 0%');
- $this->assertDef('100% 100%');
- $this->assertDef('14% 84%');
- $this->assertDef('2cm 1cm');
- $this->assertDef('top');
- $this->assertDef('left');
- $this->assertDef('center');
- $this->assertDef('right');
- $this->assertDef('bottom');
- $this->assertDef('left top');
- $this->assertDef('center top');
- $this->assertDef('right top');
- $this->assertDef('left center');
- $this->assertDef('right center');
- $this->assertDef('left bottom');
- $this->assertDef('center bottom');
- $this->assertDef('right bottom');
-
- // reordered due to internal impl details
- $this->assertDef('top left', 'left top');
- $this->assertDef('top center', 'top');
- $this->assertDef('top right', 'right top');
- $this->assertDef('center left', 'left');
- $this->assertDef('center center', 'center');
- $this->assertDef('center right', 'right');
- $this->assertDef('bottom left', 'left bottom');
- $this->assertDef('bottom center', 'bottom');
- $this->assertDef('bottom right', 'right bottom');
-
- // more cases from the defined syntax
- $this->assertDef('1.32in 4ex');
- $this->assertDef('-14% -84.65%');
- $this->assertDef('-1in -4ex');
- $this->assertDef('-1pc 2.3%');
-
- // keyword mixing
- $this->assertDef('3em top');
- $this->assertDef('left 50%');
-
- // fixable keyword mixing
- $this->assertDef('top 3em', '3em top');
- $this->assertDef('50% left', 'left 50%');
-
- // whitespace collapsing
- $this->assertDef('3em top', '3em top');
- $this->assertDef("left\n \t foo ", 'left');
-
- // invalid uses (we're going to be strict on these)
- $this->assertDef('foo bar', false);
- $this->assertDef('left left', 'left');
- $this->assertDef('left right top bottom center left', 'left bottom');
- $this->assertDef('0fr 9%', '9%');
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundTest.php
deleted file mode 100644
index 83461c365..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BackgroundTest.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_BackgroundTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $config = HTMLPurifier_Config::createDefault();
- $this->def = new HTMLPurifier_AttrDef_CSS_Background($config);
-
- $valid = '#333 url("chess.png") repeat fixed 50% top';
- $this->assertDef($valid);
- $this->assertDef('url(\'chess.png\') #333 50% top repeat fixed', $valid);
- $this->assertDef(
- 'rgb(34, 56, 33) url(chess.png) repeat fixed top',
- 'rgb(34,56,33) url("chess.png") repeat fixed top'
- );
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BorderTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BorderTest.php
deleted file mode 100644
index 6cd77fd7a..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/BorderTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_BorderTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $config = HTMLPurifier_Config::createDefault();
- $this->def = new HTMLPurifier_AttrDef_CSS_Border($config);
-
- $this->assertDef('thick solid red', 'thick solid #FF0000');
- $this->assertDef('thick solid');
- $this->assertDef('solid red', 'solid #FF0000');
- $this->assertDef('1px solid #000');
- $this->assertDef('1px solid rgb(0, 0, 0)', '1px solid rgb(0,0,0)');
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ColorTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ColorTest.php
deleted file mode 100644
index f3a74e897..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ColorTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_ColorTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Color();
-
- $this->assertDef('#F00');
- $this->assertDef('#fff');
- $this->assertDef('#eeeeee');
- $this->assertDef('#808080');
- $this->assertDef('rgb(255, 0, 0)', 'rgb(255,0,0)'); // rm spaces
- $this->assertDef('rgb(100%,0%,0%)');
- $this->assertDef('rgb(50.5%,23.2%,43.9%)'); // decimals okay
-
- $this->assertDef('#G00', false);
- $this->assertDef('cmyk(40, 23, 43, 23)', false);
- $this->assertDef('rgb(0%, 23, 68%)', false);
-
- // clip numbers outside sRGB gamut
- $this->assertDef('rgb(200%, -10%, 0%)', 'rgb(100%,0%,0%)');
- $this->assertDef('rgb(256,-23,34)', 'rgb(255,0,34)');
-
- // color keywords, of course
- $this->assertDef('red', '#FF0000');
-
- // malformed hex declaration
- $this->assertDef('808080', '#808080');
- $this->assertDef('000000', '#000000');
- $this->assertDef('fed', '#fed');
-
- // maybe hex transformations would be another nice feature
- // at the very least transform rgb percent to rgb integer
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/CompositeTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/CompositeTest.php
deleted file mode 100644
index 44bef5551..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/CompositeTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_Composite_Testable extends
- HTMLPurifier_AttrDef_CSS_Composite
-{
-
- // we need to pass by ref to get the mocks in
- function HTMLPurifier_AttrDef_CSS_Composite_Testable(&$defs) {
- $this->defs =& $defs;
- }
-
-}
-
-class HTMLPurifier_AttrDef_CSS_CompositeTest extends HTMLPurifier_AttrDefHarness
-{
-
- protected $def1, $def2;
-
- function test() {
-
- generate_mock_once('HTMLPurifier_AttrDef');
-
- $config = HTMLPurifier_Config::createDefault();
- $context = new HTMLPurifier_Context();
-
- // first test: value properly validates on first definition
- // so second def is never called
-
- $def1 = new HTMLPurifier_AttrDefMock();
- $def2 = new HTMLPurifier_AttrDefMock();
- $defs = array(&$def1, &$def2);
- $def = new HTMLPurifier_AttrDef_CSS_Composite_Testable($defs);
- $input = 'FOOBAR';
- $output = 'foobar';
- $def1_params = array($input, $config, $context);
- $def1->expectOnce('validate', $def1_params);
- $def1->setReturnValue('validate', $output, $def1_params);
- $def2->expectNever('validate');
-
- $result = $def->validate($input, $config, $context);
- $this->assertIdentical($output, $result);
-
- // second test, first def fails, second def works
-
- $def1 = new HTMLPurifier_AttrDefMock();
- $def2 = new HTMLPurifier_AttrDefMock();
- $defs = array(&$def1, &$def2);
- $def = new HTMLPurifier_AttrDef_CSS_Composite_Testable($defs);
- $input = 'BOOMA';
- $output = 'booma';
- $def_params = array($input, $config, $context);
- $def1->expectOnce('validate', $def_params);
- $def1->setReturnValue('validate', false, $def_params);
- $def2->expectOnce('validate', $def_params);
- $def2->setReturnValue('validate', $output, $def_params);
-
- $result = $def->validate($input, $config, $context);
- $this->assertIdentical($output, $result);
-
- // third test, all fail, so composite faiils
-
- $def1 = new HTMLPurifier_AttrDefMock();
- $def2 = new HTMLPurifier_AttrDefMock();
- $defs = array(&$def1, &$def2);
- $def = new HTMLPurifier_AttrDef_CSS_Composite_Testable($defs);
- $input = 'BOOMA';
- $output = false;
- $def_params = array($input, $config, $context);
- $def1->expectOnce('validate', $def_params);
- $def1->setReturnValue('validate', false, $def_params);
- $def2->expectOnce('validate', $def_params);
- $def2->setReturnValue('validate', false, $def_params);
-
- $result = $def->validate($input, $config, $context);
- $this->assertIdentical($output, $result);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FilterTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FilterTest.php
deleted file mode 100644
index 7795643f1..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FilterTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_FilterTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Filter();
-
- $this->assertDef('none');
-
- $this->assertDef('alpha(opacity=0)');
- $this->assertDef('alpha(opacity=100)');
- $this->assertDef('alpha(opacity=50)');
- $this->assertDef('alpha(opacity=342)', 'alpha(opacity=100)');
- $this->assertDef('alpha(opacity=-23)', 'alpha(opacity=0)');
-
- $this->assertDef('alpha ( opacity = 0 )', 'alpha(opacity=0)');
- $this->assertDef('alpha(opacity=0,opacity=100)', 'alpha(opacity=0)');
-
- $this->assertDef('progid:DXImageTransform.Microsoft.Alpha(opacity=20)');
-
- $this->assertDef('progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontFamilyTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontFamilyTest.php
deleted file mode 100644
index fda8e01ff..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontFamilyTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_FontFamilyTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_FontFamily();
-
- $this->assertDef('Gill, Helvetica, sans-serif');
- $this->assertDef("'Times New Roman', serif");
- $this->assertDef("\"Times New Roman\"", "'Times New Roman'");
- $this->assertDef('01234');
- $this->assertDef(',', false);
- $this->assertDef('Times New Roman, serif', "'Times New Roman', serif");
- $this->assertDef($d = "'\xE5\xAE\x8B\xE4\xBD\x93'");
- $this->assertDef("\xE5\xAE\x8B\xE4\xBD\x93", $d);
- $this->assertDef("'\\01'", "''");
- $this->assertDef("'\\20'", "' '");
- $this->assertDef("\\0020", "' '");
- $this->assertDef("'\\000045'", "E");
- $this->assertDef("','", false);
- $this->assertDef("',' foobar','", "' foobar'");
- $this->assertDef("'\\000045a'", "Ea");
- $this->assertDef("'\\00045 a'", "Ea");
- $this->assertDef("'\\00045 a'", "'E a'");
- $this->assertDef("'\\\nf'", "f");
- // No longer supported, except maybe in NoJS mode (see source
- // file for more explanation)
- //$this->assertDef($d = '"John\'s Font"');
- //$this->assertDef("John's Font", $d);
- //$this->assertDef("'\\','f'", "\"\\5C \", f");
- //$this->assertDef("'\\27'", "\"'\"");
- //$this->assertDef('"\\22"', "\"\\22 \"");
- //$this->assertDef('"\\""', "\"\\22 \"");
- //$this->assertDef('"\'"', "\"'\"");
- }
-
- function testAllowed() {
- $this->config->set('CSS.AllowedFonts', array('serif', 'Times New Roman'));
-
- $this->assertDef('serif');
- $this->assertDef('sans-serif', false);
- $this->assertDef('serif, sans-serif', 'serif');
- $this->assertDef('Times New Roman', "'Times New Roman'");
- $this->assertDef("'Times New Roman'");
- $this->assertDef('foo', false);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontTest.php
deleted file mode 100644
index 91870d13e..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/FontTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_FontTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $config = HTMLPurifier_Config::createDefault();
- $this->def = new HTMLPurifier_AttrDef_CSS_Font($config);
-
- // hodgepodge of usage cases from W3C spec, but " -> '
- $this->assertDef('12px/14px sans-serif');
- $this->assertDef('80% sans-serif');
- $this->assertDef("x-large/110% 'New Century Schoolbook', serif");
- $this->assertDef('bold italic large Palatino, serif');
- $this->assertDef('normal small-caps 120%/120% fantasy');
- $this->assertDef("300 italic 1.3em/1.7em 'FB Armada', sans-serif");
- $this->assertDef('600 9px Charcoal');
- $this->assertDef('600 9px/ 12px Charcoal', '600 9px/12px Charcoal');
-
- // spacing
- $this->assertDef('12px / 14px sans-serif', '12px/14px sans-serif');
-
- // system fonts
- $this->assertDef('menu');
-
- $this->assertDef('800', false);
- $this->assertDef('600 9px//12px Charcoal', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ImportantDecoratorTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ImportantDecoratorTest.php
deleted file mode 100644
index c7fa8a0fa..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ImportantDecoratorTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_ImportantDecoratorTest extends HTMLPurifier_AttrDefHarness
-{
-
- /** Mock AttrDef decorator is wrapping */
- protected $mock;
-
- function setUp() {
- generate_mock_once('HTMLPurifier_AttrDef');
- $this->mock = new HTMLPurifier_AttrDefMock();
- $this->def = new HTMLPurifier_AttrDef_CSS_ImportantDecorator($this->mock, true);
- }
-
- protected function setMock($input, $output = null) {
- if ($output === null) $output = $input;
- $this->mock->expectOnce('validate', array($input, $this->config, $this->context));
- $this->mock->setReturnValue('validate', $output);
- }
-
- function testImportant() {
- $this->setMock('23');
- $this->assertDef('23 !important');
- }
-
- function testImportantInternalDefChanged() {
- $this->setMock('23', '24');
- $this->assertDef('23 !important', '24 !important');
- }
-
- function testImportantWithSpace() {
- $this->setMock('23');
- $this->assertDef('23 ! important ', '23 !important');
- }
-
- function testFakeImportant() {
- $this->setMock('! foo important');
- $this->assertDef('! foo important');
- }
-
- function testStrip() {
- $this->def = new HTMLPurifier_AttrDef_CSS_ImportantDecorator($this->mock, false);
- $this->setMock('23');
- $this->assertDef('23 ! important ', '23');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/LengthTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/LengthTest.php
deleted file mode 100644
index 9d9fc41f2..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/LengthTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_LengthTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Length();
-
- $this->assertDef('0');
- $this->assertDef('0px');
- $this->assertDef('4.5px');
- $this->assertDef('-4.5px');
- $this->assertDef('3ex');
- $this->assertDef('3em');
- $this->assertDef('3in');
- $this->assertDef('3cm');
- $this->assertDef('3mm');
- $this->assertDef('3pt');
- $this->assertDef('3pc');
-
- $this->assertDef('3PX', '3px');
-
- $this->assertDef('3', false);
- $this->assertDef('3miles', false);
-
- }
-
- function testNonNegative() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Length('0');
-
- $this->assertDef('3cm');
- $this->assertDef('-3mm', false);
-
- }
-
- function testBounding() {
- $this->def = new HTMLPurifier_AttrDef_CSS_Length('-1in', '1in');
- $this->assertDef('1cm');
- $this->assertDef('-1cm');
- $this->assertDef('0');
- $this->assertDef('1em', false);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ListStyleTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ListStyleTest.php
deleted file mode 100644
index 070066705..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/ListStyleTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_ListStyleTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $config = HTMLPurifier_Config::createDefault();
- $this->def = new HTMLPurifier_AttrDef_CSS_ListStyle($config);
-
- $this->assertDef('lower-alpha');
- $this->assertDef('upper-roman inside');
- $this->assertDef('circle outside');
- $this->assertDef('inside');
- $this->assertDef('none');
- $this->assertDef('url("foo.gif")');
- $this->assertDef('circle url("foo.gif") inside');
-
- // invalid values
- $this->assertDef('outside inside', 'outside');
-
- // ordering
- $this->assertDef('url(foo.gif) none', 'none url("foo.gif")');
- $this->assertDef('circle lower-alpha', 'circle');
- // the spec is ambiguous about what happens in these
- // cases, so we're going off the W3C CSS validator
- $this->assertDef('disc none', 'disc');
- $this->assertDef('none disc', 'none');
-
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/MultipleTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/MultipleTest.php
deleted file mode 100644
index 4461cb508..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/MultipleTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-// borrowed for the sakes of this test
-class HTMLPurifier_AttrDef_CSS_MultipleTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
- $this->def = new HTMLPurifier_AttrDef_CSS_Multiple(
- new HTMLPurifier_AttrDef_Integer()
- );
-
- $this->assertDef('1 2 3 4');
- $this->assertDef('6');
- $this->assertDef('4 5');
- $this->assertDef(' 2 54 2 3', '2 54 2 3');
- $this->assertDef("6\r3", '6 3');
-
- $this->assertDef('asdf', false);
- $this->assertDef('a s d f', false);
- $this->assertDef('1 2 3 4 5', '1 2 3 4');
- $this->assertDef('1 2 invalid 3', '1 2 3');
-
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/NumberTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/NumberTest.php
deleted file mode 100644
index 94e6ea8cf..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/NumberTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_NumberTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Number();
-
- $this->assertDef('0');
- $this->assertDef('0.0', '0');
- $this->assertDef('1.0', '1');
- $this->assertDef('34');
- $this->assertDef('4.5');
- $this->assertDef('.5');
- $this->assertDef('0.5', '.5');
- $this->assertDef('-56.9');
-
- $this->assertDef('0.', '0');
- $this->assertDef('.0', '0');
- $this->assertDef('0.0', '0');
-
- $this->assertDef('1.', '1');
- $this->assertDef('.1', '.1');
-
- $this->assertDef('1.0', '1');
- $this->assertDef('0.1', '.1');
-
- $this->assertDef('000', '0');
- $this->assertDef(' 9', '9');
- $this->assertDef('+5.0000', '5');
- $this->assertDef('02.20', '2.2');
- $this->assertDef('2.', '2');
-
- $this->assertDef('.', false);
- $this->assertDef('asdf', false);
- $this->assertDef('0.5.6', false);
-
- }
-
- function testNonNegative() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Number(true);
- $this->assertDef('23');
- $this->assertDef('-12', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/PercentageTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/PercentageTest.php
deleted file mode 100644
index f712af1d2..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/PercentageTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_PercentageTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_Percentage();
-
- $this->assertDef('10%');
- $this->assertDef('1.607%');
- $this->assertDef('-567%');
-
- $this->assertDef(' 100% ', '100%');
-
- $this->assertDef('5', false);
- $this->assertDef('asdf', false);
- $this->assertDef('%', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/TextDecorationTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/TextDecorationTest.php
deleted file mode 100644
index dd714d206..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/TextDecorationTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_TextDecorationTest extends HTMLPurifier_AttrDefHarness
-{
-
- function testCaseInsensitive() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_TextDecoration();
-
- $this->assertDef('none');
- $this->assertDef('none underline', 'underline');
-
- $this->assertDef('underline');
- $this->assertDef('overline');
- $this->assertDef('line-through overline underline');
- $this->assertDef('overline line-through');
- $this->assertDef('UNDERLINE', 'underline');
- $this->assertDef(' underline line-through ', 'underline line-through');
-
- $this->assertDef('foobar underline', 'underline');
- $this->assertDef('blink', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/URITest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/URITest.php
deleted file mode 100644
index 3d6f5791e..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSS/URITest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_URITest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_CSS_URI();
-
- $this->assertDef('', false);
-
- // we could be nice but we won't be
- $this->assertDef('http://www.example.com/', false);
-
- $this->assertDef('url(', false);
- $this->assertDef('url("")', true);
- $result = 'url("http://www.example.com/")';
- $this->assertDef('url(http://www.example.com/)', $result);
- $this->assertDef('url("http://www.example.com/")', $result);
- $this->assertDef("url('http://www.example.com/')", $result);
- $this->assertDef(
- ' url( "http://www.example.com/" ) ', $result);
- $this->assertDef("url(http://www.example.com/foo,bar\)\'\()",
- 'url("http://www.example.com/foo,bar%29%27%28")');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSSTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSSTest.php
deleted file mode 100644
index 56917aece..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/CSSTest.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSSTest extends HTMLPurifier_AttrDefHarness
-{
-
- function setup() {
- parent::setup();
- $this->def = new HTMLPurifier_AttrDef_CSS();
- }
-
- function test() {
-
- // regular cases, singular
- $this->assertDef('text-align:right;');
- $this->assertDef('border-left-style:solid;');
- $this->assertDef('border-style:solid dotted;');
- $this->assertDef('clear:right;');
- $this->assertDef('float:left;');
- $this->assertDef('font-style:italic;');
- $this->assertDef('font-variant:small-caps;');
- $this->assertDef('font-weight:bold;');
- $this->assertDef('list-style-position:outside;');
- $this->assertDef('list-style-type:upper-roman;');
- $this->assertDef('list-style:upper-roman inside;');
- $this->assertDef('text-transform:capitalize;');
- $this->assertDef('background-color:rgb(0,0,255);');
- $this->assertDef('background-color:transparent;');
- $this->assertDef('background:#333 url("chess.png") repeat fixed 50% top;');
- $this->assertDef('color:#F00;');
- $this->assertDef('border-top-color:#F00;');
- $this->assertDef('border-color:#F00 #FF0;');
- $this->assertDef('border-top-width:thin;');
- $this->assertDef('border-top-width:12px;');
- $this->assertDef('border-width:5px 1px 4px 2px;');
- $this->assertDef('border-top-width:-12px;', false);
- $this->assertDef('letter-spacing:normal;');
- $this->assertDef('letter-spacing:2px;');
- $this->assertDef('word-spacing:normal;');
- $this->assertDef('word-spacing:3em;');
- $this->assertDef('font-size:200%;');
- $this->assertDef('font-size:larger;');
- $this->assertDef('font-size:12pt;');
- $this->assertDef('line-height:2;');
- $this->assertDef('line-height:2em;');
- $this->assertDef('line-height:20%;');
- $this->assertDef('line-height:normal;');
- $this->assertDef('line-height:-20%;', false);
- $this->assertDef('margin-left:5px;');
- $this->assertDef('margin-right:20%;');
- $this->assertDef('margin-top:auto;');
- $this->assertDef('margin:auto 5%;');
- $this->assertDef('padding-bottom:5px;');
- $this->assertDef('padding-top:20%;');
- $this->assertDef('padding:20% 10%;');
- $this->assertDef('padding-top:-20%;', false);
- $this->assertDef('text-indent:3em;');
- $this->assertDef('text-indent:5%;');
- $this->assertDef('text-indent:-3em;');
- $this->assertDef('width:50%;');
- $this->assertDef('width:50px;');
- $this->assertDef('width:auto;');
- $this->assertDef('width:-50px;', false);
- $this->assertDef('text-decoration:underline;');
- $this->assertDef('font-family:sans-serif;');
- $this->assertDef("font-family:Gill, 'Times New Roman', sans-serif;");
- $this->assertDef('font:12px serif;');
- $this->assertDef('border:1px solid #000;');
- $this->assertDef('border-bottom:2em double #FF00FA;');
- $this->assertDef('border-collapse:collapse;');
- $this->assertDef('border-collapse:separate;');
- $this->assertDef('caption-side:top;');
- $this->assertDef('vertical-align:middle;');
- $this->assertDef('vertical-align:12px;');
- $this->assertDef('vertical-align:50%;');
- $this->assertDef('table-layout:fixed;');
- $this->assertDef('list-style-image:url("nice.jpg");');
- $this->assertDef('list-style:disc url("nice.jpg") inside;');
- $this->assertDef('background-image:url("foo.jpg");');
- $this->assertDef('background-image:none;');
- $this->assertDef('background-repeat:repeat-y;');
- $this->assertDef('background-attachment:fixed;');
- $this->assertDef('background-position:left 90%;');
- $this->assertDef('border-spacing:1em;');
- $this->assertDef('border-spacing:1em 2em;');
-
- // duplicates
- $this->assertDef('text-align:right;text-align:left;',
- 'text-align:left;');
-
- // a few composites
- $this->assertDef('font-variant:small-caps;font-weight:900;');
- $this->assertDef('float:right;text-align:right;');
-
- // selective removal
- $this->assertDef('text-transform:capitalize;destroy:it;',
- 'text-transform:capitalize;');
-
- // inherit works for everything
- $this->assertDef('text-align:inherit;');
-
- // bad props
- $this->assertDef('nodice:foobar;', false);
- $this->assertDef('position:absolute;', false);
- $this->assertDef('background-image:url(\'javascript:alert\(\)\');', false);
-
- // airy input
- $this->assertDef(' font-weight : bold; color : #ff0000',
- 'font-weight:bold;color:#ff0000;');
-
- // case-insensitivity
- $this->assertDef('FLOAT:LEFT;', 'float:left;');
-
- // !important stripping
- $this->assertDef('float:left !important;', 'float:left;');
-
- }
-
- function testProprietary() {
- $this->config->set('CSS.Proprietary', true);
-
- $this->assertDef('scrollbar-arrow-color:#ff0;');
- $this->assertDef('scrollbar-base-color:#ff6347;');
- $this->assertDef('scrollbar-darkshadow-color:#ffa500;');
- $this->assertDef('scrollbar-face-color:#008080;');
- $this->assertDef('scrollbar-highlight-color:#ff69b4;');
- $this->assertDef('scrollbar-shadow-color:#f0f;');
-
- $this->assertDef('opacity:.2;');
- $this->assertDef('-moz-opacity:.2;');
- $this->assertDef('-khtml-opacity:.2;');
- $this->assertDef('filter:alpha(opacity=20);');
-
- }
-
- function testImportant() {
- $this->config->set('CSS.AllowImportant', true);
- $this->assertDef('float:left !important;');
- }
-
- function testTricky() {
- $this->config->set('CSS.AllowTricky', true);
- $this->assertDef('display:none;');
- $this->assertDef('visibility:visible;');
- $this->assertDef('overflow:scroll;');
- }
-
- function testForbidden() {
- $this->config->set('CSS.ForbiddenProperties', 'float');
- $this->assertDef('float:left;', false);
- $this->assertDef('text-align:right;');
- }
-
- function testTrusted() {
- $this->config->set('CSS.Trusted', true);
- $this->assertDef('position:relative;');
- $this->assertDef('left:2px;');
- $this->assertDef('right:100%;');
- $this->assertDef('top:auto;');
- $this->assertDef('z-index:-2;');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/EnumTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/EnumTest.php
deleted file mode 100644
index 7722c1bc2..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/EnumTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_EnumTest extends HTMLPurifier_AttrDefHarness
-{
-
- function testCaseInsensitive() {
- $this->def = new HTMLPurifier_AttrDef_Enum(array('one', 'two'));
- $this->assertDef('one');
- $this->assertDef('ONE', 'one');
- }
-
- function testCaseSensitive() {
- $this->def = new HTMLPurifier_AttrDef_Enum(array('one', 'two'), true);
- $this->assertDef('one');
- $this->assertDef('ONE', false);
- }
-
- function testFixing() {
- $this->def = new HTMLPurifier_AttrDef_Enum(array('one'));
- $this->assertDef(' one ', 'one');
- }
-
- function test_make() {
- $factory = new HTMLPurifier_AttrDef_Enum();
-
- $def = $factory->make('foo,bar');
- $def2 = new HTMLPurifier_AttrDef_Enum(array('foo', 'bar'));
- $this->assertIdentical($def, $def2);
-
- $def = $factory->make('s:foo,BAR');
- $def2 = new HTMLPurifier_AttrDef_Enum(array('foo', 'BAR'), true);
- $this->assertIdentical($def, $def2);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/BoolTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/BoolTest.php
deleted file mode 100644
index 060d0fc8f..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/BoolTest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_BoolTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
- $this->def = new HTMLPurifier_AttrDef_HTML_Bool('foo');
- $this->assertDef('foo');
- $this->assertDef('', false);
- $this->assertDef('bar', 'foo');
- }
-
- function test_make() {
- $factory = new HTMLPurifier_AttrDef_HTML_Bool();
- $def = $factory->make('foo');
- $def2 = new HTMLPurifier_AttrDef_HTML_Bool('foo');
- $this->assertIdentical($def, $def2);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ClassTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ClassTest.php
deleted file mode 100644
index 6effd3cde..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ClassTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_ClassTest extends HTMLPurifier_AttrDef_HTML_NmtokensTest
-{
- function setUp() {
- parent::setUp();
- $this->def = new HTMLPurifier_AttrDef_HTML_Class();
- }
- function testAllowedClasses() {
- $this->config->set('Attr.AllowedClasses', array('foo'));
- $this->assertDef('foo');
- $this->assertDef('bar', false);
- $this->assertDef('foo bar', 'foo');
- }
- function testForbiddenClasses() {
- $this->config->set('Attr.ForbiddenClasses', array('bar'));
- $this->assertDef('foo');
- $this->assertDef('bar', false);
- $this->assertDef('foo bar', 'foo');
- }
- function testDefault() {
- $this->assertDef('valid');
- $this->assertDef('a0-_');
- $this->assertDef('-valid');
- $this->assertDef('_valid');
- $this->assertDef('double valid');
-
- $this->assertDef('0stillvalid');
- $this->assertDef('-0');
-
- // test conditional replacement
- $this->assertDef('validassoc 0valid', 'validassoc 0valid');
-
- // test whitespace leniency
- $this->assertDef(" double\nvalid\r", 'double valid');
-
- // test case sensitivity
- $this->assertDef('VALID');
-
- // test duplicate removal
- $this->assertDef('valid valid', 'valid');
- }
- function testXHTML11Behavior() {
- $this->config->set('HTML.Doctype', 'XHTML 1.1');
- $this->assertDef('0invalid', false);
- $this->assertDef('valid valid', 'valid');
- }
-}
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ColorTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ColorTest.php
deleted file mode 100644
index 8b4a46347..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/ColorTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_ColorTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
- $this->def = new HTMLPurifier_AttrDef_HTML_Color();
- $this->assertDef('', false);
- $this->assertDef('foo', false);
- $this->assertDef('43', false);
- $this->assertDef('red', '#FF0000');
- $this->assertDef('#FF0000');
- $this->assertDef('#453443');
- $this->assertDef('453443', '#453443');
- $this->assertDef('#345', '#334455');
- $this->assertDef('120', '#112200');
- }
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/FrameTargetTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/FrameTargetTest.php
deleted file mode 100644
index 7d3e24c75..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/FrameTargetTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_FrameTargetTest extends HTMLPurifier_AttrDefHarness
-{
-
- function setup() {
- parent::setup();
- $this->def = new HTMLPurifier_AttrDef_HTML_FrameTarget();
- }
-
- function testNoneAllowed() {
- $this->assertDef('', false);
- $this->assertDef('foo', false);
- $this->assertDef('_blank', false);
- $this->assertDef('baz', false);
- }
-
- function test() {
- $this->config->set('Attr.AllowedFrameTargets', 'foo,_blank');
- $this->assertDef('', false);
- $this->assertDef('foo');
- $this->assertDef('_blank');
- $this->assertDef('baz', false);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/IDTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/IDTest.php
deleted file mode 100644
index 245db16da..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/IDTest.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_IDTest extends HTMLPurifier_AttrDefHarness
-{
-
- function setUp() {
- parent::setUp();
-
- $id_accumulator = new HTMLPurifier_IDAccumulator();
- $this->context->register('IDAccumulator', $id_accumulator);
- $this->config->set('Attr.EnableID', true);
- $this->def = new HTMLPurifier_AttrDef_HTML_ID();
-
- }
-
- function test() {
-
- // valid ID names
- $this->assertDef('alpha');
- $this->assertDef('al_ha');
- $this->assertDef('a0-:.');
- $this->assertDef('a');
-
- // invalid ID names
- $this->assertDef('<asa', false);
- $this->assertDef('0123', false);
- $this->assertDef('.asa', false);
-
- // test duplicate detection
- $this->assertDef('once');
- $this->assertDef('once', false);
-
- // valid once whitespace stripped, but needs to be amended
- $this->assertDef(' whee ', 'whee');
-
- }
-
- function testPrefix() {
-
- $this->config->set('Attr.IDPrefix', 'user_');
-
- $this->assertDef('alpha', 'user_alpha');
- $this->assertDef('<asa', false);
- $this->assertDef('once', 'user_once');
- $this->assertDef('once', false);
-
- // if already prefixed, leave alone
- $this->assertDef('user_alas');
- $this->assertDef('user_user_alas'); // how to bypass
-
- }
-
- function testTwoPrefixes() {
-
- $this->config->set('Attr.IDPrefix', 'user_');
- $this->config->set('Attr.IDPrefixLocal', 'story95_');
-
- $this->assertDef('alpha', 'user_story95_alpha');
- $this->assertDef('<asa', false);
- $this->assertDef('once', 'user_story95_once');
- $this->assertDef('once', false);
-
- $this->assertDef('user_story95_alas');
- $this->assertDef('user_alas', 'user_story95_user_alas'); // !
- }
-
- function testLocalPrefixWithoutMainPrefix() {
- // no effect when IDPrefix isn't set
- $this->config->set('Attr.IDPrefix', '');
- $this->config->set('Attr.IDPrefixLocal', 'story95_');
- $this->expectError('%Attr.IDPrefixLocal cannot be used unless '.
- '%Attr.IDPrefix is set');
- $this->assertDef('amherst');
-
- }
-
- // reference functionality is disabled for now
- function disabled_testIDReference() {
-
- $this->def = new HTMLPurifier_AttrDef_HTML_ID(true);
-
- $this->assertDef('good_id');
- $this->assertDef('good_id'); // duplicates okay
- $this->assertDef('<b>', false);
-
- $this->def = new HTMLPurifier_AttrDef_HTML_ID();
-
- $this->assertDef('good_id');
- $this->assertDef('good_id', false); // duplicate now not okay
-
- $this->def = new HTMLPurifier_AttrDef_HTML_ID(true);
-
- $this->assertDef('good_id'); // reference still okay
-
- }
-
- function testRegexp() {
-
- $this->config->set('Attr.IDBlacklistRegexp', '/^g_/');
-
- $this->assertDef('good_id');
- $this->assertDef('g_bad_id', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LengthTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LengthTest.php
deleted file mode 100644
index d165e30b5..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LengthTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_LengthTest extends HTMLPurifier_AttrDef_HTML_PixelsTest
-{
-
- function setup() {
- $this->def = new HTMLPurifier_AttrDef_HTML_Length();
- }
-
- function test() {
-
- // pixel check
- parent::test();
-
- // percent check
- $this->assertDef('25%');
-
- // Firefox maintains percent, so will we
- $this->assertDef('0%');
-
- // 0% <= percent <= 100%
- $this->assertDef('-15%', '0%');
- $this->assertDef('120%', '100%');
-
- // fractional percents, apparently, aren't allowed
- $this->assertDef('56.5%', '56%');
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LinkTypesTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LinkTypesTest.php
deleted file mode 100644
index d90b65b1f..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/LinkTypesTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_LinkTypesTest extends HTMLPurifier_AttrDefHarness
-{
-
- function testNull() {
-
- $this->def = new HTMLPurifier_AttrDef_HTML_LinkTypes('rel');
- $this->config->set('Attr.AllowedRel', array('nofollow', 'foo'));
-
- $this->assertDef('', false);
- $this->assertDef('nofollow', true);
- $this->assertDef('nofollow foo', true);
- $this->assertDef('nofollow bar', 'nofollow');
- $this->assertDef('bar', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/MultiLengthTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/MultiLengthTest.php
deleted file mode 100644
index eb6f34011..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/MultiLengthTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_MultiLengthTest extends HTMLPurifier_AttrDef_HTML_LengthTest
-{
-
- function setup() {
- $this->def = new HTMLPurifier_AttrDef_HTML_MultiLength();
- }
-
- function test() {
-
- // length check
- parent::test();
-
- $this->assertDef('*');
- $this->assertDef('1*', '*');
- $this->assertDef('56*');
-
- $this->assertDef('**', false); // plain old bad
-
- $this->assertDef('5.4*', '5*'); // no decimals
- $this->assertDef('-3*', false); // no negatives
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/NmtokensTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/NmtokensTest.php
deleted file mode 100644
index bb64ff6e2..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/NmtokensTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_NmtokensTest extends HTMLPurifier_AttrDefHarness
-{
-
- function setUp() {
- parent::setUp();
- $this->def = new HTMLPurifier_AttrDef_HTML_Nmtokens();
- }
-
- function testDefault() {
-
- $this->assertDef('valid');
- $this->assertDef('a0-_');
- $this->assertDef('-valid');
- $this->assertDef('_valid');
- $this->assertDef('double valid');
-
- $this->assertDef('0invalid', false);
- $this->assertDef('-0', false);
-
- // test conditional replacement
- $this->assertDef('validassoc 0invalid', 'validassoc');
-
- // test whitespace leniency
- $this->assertDef(" double\nvalid\r", 'double valid');
-
- // test case sensitivity
- $this->assertDef('VALID');
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/PixelsTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/PixelsTest.php
deleted file mode 100644
index 08f25be64..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/HTML/PixelsTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_HTML_PixelsTest extends HTMLPurifier_AttrDefHarness
-{
-
- function setup() {
- $this->def = new HTMLPurifier_AttrDef_HTML_Pixels();
- }
-
- function test() {
-
- $this->assertDef('1');
- $this->assertDef('0');
-
- $this->assertDef('2px', '2'); // rm px suffix
-
- $this->assertDef('dfs', false); // totally invalid value
-
- // conceivably we could repair this value, but we won't for now
- $this->assertDef('9in', false);
-
- // test trim
- $this->assertDef(' 45 ', '45');
-
- // no negatives
- $this->assertDef('-2', '0');
-
- // remove empty
- $this->assertDef('', false);
-
- // round down
- $this->assertDef('4.9', '4');
-
- }
-
- function test_make() {
- $factory = new HTMLPurifier_AttrDef_HTML_Pixels();
- $this->def = $factory->make('30');
- $this->assertDef('25');
- $this->assertDef('35', '30');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/IntegerTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/IntegerTest.php
deleted file mode 100644
index a941e31ab..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/IntegerTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_IntegerTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_Integer();
-
- $this->assertDef('0');
- $this->assertDef('1');
- $this->assertDef('-1');
- $this->assertDef('-10');
- $this->assertDef('14');
- $this->assertDef('+24', '24');
- $this->assertDef(' 14 ', '14');
- $this->assertDef('-0', '0');
-
- $this->assertDef('-1.4', false);
- $this->assertDef('3.4', false);
- $this->assertDef('asdf', false); // must not return zero
- $this->assertDef('2in', false); // must not return zero
-
- }
-
- function assertRange($negative, $zero, $positive) {
- $this->assertDef('-100', $negative);
- $this->assertDef('-1', $negative);
- $this->assertDef('0', $zero);
- $this->assertDef('1', $positive);
- $this->assertDef('42', $positive);
- }
-
- function testRange() {
-
- $this->def = new HTMLPurifier_AttrDef_Integer(false);
- $this->assertRange(false, true, true); // non-negative
-
- $this->def = new HTMLPurifier_AttrDef_Integer(false, false);
- $this->assertRange(false, false, true); // positive
-
-
- // fringe cases
-
- $this->def = new HTMLPurifier_AttrDef_Integer(false, false, false);
- $this->assertRange(false, false, false); // allow none
-
- $this->def = new HTMLPurifier_AttrDef_Integer(true, false, false);
- $this->assertRange(true, false, false); // negative
-
- $this->def = new HTMLPurifier_AttrDef_Integer(false, true, false);
- $this->assertRange(false, true, false); // zero
-
- $this->def = new HTMLPurifier_AttrDef_Integer(true, true, false);
- $this->assertRange(true, true, false); // non-positive
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/LangTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/LangTest.php
deleted file mode 100644
index c59175556..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/LangTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_LangTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_Lang();
-
- // basic good uses
- $this->assertDef('en');
- $this->assertDef('en-us');
-
- $this->assertDef(' en ', 'en'); // trim
- $this->assertDef('EN', 'en'); // case insensitivity
-
- // (thanks Eugen Pankratz for noticing the typos!)
- $this->assertDef('En-Us-Edison', 'en-us-edison'); // complex ci
-
- $this->assertDef('fr en', false); // multiple languages
- $this->assertDef('%', false); // bad character
-
- // test overlong language according to syntax
- $this->assertDef('thisistoolongsoitgetscut', false);
-
- // primary subtag rules
- // I'm somewhat hesitant to allow x and i as primary language codes,
- // because they usually are never used in real life. However,
- // theoretically speaking, having them alone is permissable, so
- // I'll be lenient. No XML parser is going to complain anyway.
- $this->assertDef('x');
- $this->assertDef('i');
- // real world use-cases
- $this->assertDef('x-klingon');
- $this->assertDef('i-mingo');
- // because the RFC only defines two and three letter primary codes,
- // anything with a length of four or greater is invalid, despite
- // the syntax stipulation of 1 to 8 characters. Because the RFC
- // specifically states that this reservation is in order to allow
- // for future versions to expand, the adoption of a new RFC will
- // require these test cases to be rewritten, even if backwards-
- // compatibility is largely retained (i.e. this is not forwards
- // compatible)
- $this->assertDef('four', false);
- // for similar reasons, disallow any other one character language
- $this->assertDef('f', false);
-
- // second subtag rules
- // one letter subtags prohibited until revision. This is, however,
- // less volatile than the restrictions on the primary subtags.
- // Also note that this test-case tests fix-behavior: chop
- // off subtags until you get a valid language code.
- $this->assertDef('en-a', 'en');
- // however, x is a reserved single-letter subtag that is allowed
- $this->assertDef('en-x', 'en-x');
- // 2-8 chars are permitted, but have special meaning that cannot
- // be checked without maintaining country code lookup tables (for
- // two characters) or special registration tables (for all above).
- $this->assertDef('en-uk', true);
-
- // further subtag rules: only syntactic constraints
- $this->assertDef('en-us-edison');
- $this->assertDef('en-us-toolonghaha', 'en-us');
- $this->assertDef('en-us-a-silly-long-one');
-
- // rfc 3066 stipulates that if a three letter and a two letter code
- // are available, the two letter one MUST be used. Without a language
- // code lookup table, we cannot implement this functionality.
-
- // although the HTML protocol, technically speaking, allows you to
- // omit language tags, this implicitly means that the parent element's
- // language is the one applicable, which, in some cases, is incorrect.
- // Thus, we allow und, only slightly defying the RFC's SHOULD NOT
- // designation.
- $this->assertDef('und');
-
- // because attributes only allow one language, mul is allowed, complying
- // with the RFC's SHOULD NOT designation.
- $this->assertDef('mul');
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/SwitchTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/SwitchTest.php
deleted file mode 100644
index 21bafe697..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/SwitchTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_SwitchTest extends HTMLPurifier_AttrDefHarness
-{
-
- protected $with, $without;
-
- function setUp() {
- parent::setUp();
- generate_mock_once('HTMLPurifier_AttrDef');
- $this->with = new HTMLPurifier_AttrDefMock();
- $this->without = new HTMLPurifier_AttrDefMock();
- $this->def = new HTMLPurifier_AttrDef_Switch('tag', $this->with, $this->without);
- }
-
- function testWith() {
- $token = new HTMLPurifier_Token_Start('tag');
- $this->context->register('CurrentToken', $token);
- $this->with->expectOnce('validate');
- $this->with->setReturnValue('validate', 'foo');
- $this->assertDef('bar', 'foo');
- }
-
- function testWithout() {
- $token = new HTMLPurifier_Token_Start('other-tag');
- $this->context->register('CurrentToken', $token);
- $this->without->expectOnce('validate');
- $this->without->setReturnValue('validate', 'foo');
- $this->assertDef('bar', 'foo');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/TextTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/TextTest.php
deleted file mode 100644
index 458008aa8..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/TextTest.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_TextTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_Text();
-
- $this->assertDef('This is spiffy text!');
- $this->assertDef(" Casual\tCDATA parse\ncheck. ", 'Casual CDATA parse check.');
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/Email/SimpleCheckTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/Email/SimpleCheckTest.php
deleted file mode 100644
index c310347e9..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/Email/SimpleCheckTest.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_URI_Email_SimpleCheckTest
- extends HTMLPurifier_AttrDef_URI_EmailHarness
-{
-
- function setUp() {
- $this->def = new HTMLPurifier_AttrDef_URI_Email_SimpleCheck();
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/EmailHarness.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/EmailHarness.php
deleted file mode 100644
index 594e2ce29..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/EmailHarness.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_URI_EmailHarness extends HTMLPurifier_AttrDefHarness
-{
-
- /**
- * Tests common email strings that are obviously pass/fail
- */
- function testCore() {
- $this->assertDef('bob@example.com');
- $this->assertDef(' bob@example.com ', 'bob@example.com');
- $this->assertDef('bob.thebuilder@example.net');
- $this->assertDef('Bob_the_Builder-the-2nd@example.org');
- $this->assertDef('Bob%20the%20Builder@white-space.test');
-
- // extended format, with real name
- //$this->assertDef('Bob%20Builder%20%3Cbobby.bob.bob@it.is.example.com%3E');
- //$this->assertDef('Bob Builder <bobby.bob.bob@it.is.example.com>');
-
- // time to fail
- $this->assertDef('bob', false);
- $this->assertDef('bob@home@work', false);
- $this->assertDef('@example.com', false);
- $this->assertDef('bob@', false);
- $this->assertDef('', false);
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/HostTest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/HostTest.php
deleted file mode 100644
index b5827718b..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/HostTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-// takes a URI formatted host and validates it
-
-
-class HTMLPurifier_AttrDef_URI_HostTest extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_URI_Host();
-
- $this->assertDef('[2001:DB8:0:0:8:800:200C:417A]'); // IPv6
- $this->assertDef('124.15.6.89'); // IPv4
- $this->assertDef('www.google.com'); // reg-name
-
- // more domain name tests
- $this->assertDef('test.');
- $this->assertDef('sub.test.');
- $this->assertDef('.test', false);
- $this->assertDef('ff');
- $this->assertDef('1f', false);
- $this->assertDef('-f', false);
- $this->assertDef('f1');
- $this->assertDef('f-', false);
- $this->assertDef('sub.ff');
- $this->assertDef('sub.1f', false);
- $this->assertDef('sub.-f', false);
- $this->assertDef('sub.f1');
- $this->assertDef('sub.f-', false);
- $this->assertDef('ff.top');
- $this->assertDef('1f.top');
- $this->assertDef('-f.top', false);
- $this->assertDef('ff.top');
- $this->assertDef('f1.top');
- $this->assertDef('f-.top', false);
-
- $this->assertDef("\xE4\xB8\xAD\xE6\x96\x87.com.cn", false);
-
- }
-
- function testIDNA() {
- if (!$GLOBALS['HTMLPurifierTest']['Net_IDNA2']) {
- return false;
- }
- $this->config->set('Core.EnableIDNA', true);
- $this->assertDef("\xE4\xB8\xAD\xE6\x96\x87.com.cn", "xn--fiq228c.com.cn");
- $this->assertDef("\xe2\x80\x85.com", false); // rejected
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv4Test.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv4Test.php
deleted file mode 100644
index 0a4eb17ba..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv4Test.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-// IPv4 test case is spliced from Feyd's IPv6 implementation
-// we ought to disallow non-routable addresses
-
-class HTMLPurifier_AttrDef_URI_IPv4Test extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_URI_IPv4();
-
- $this->assertDef('127.0.0.1'); // standard IPv4, loopback, non-routable
- $this->assertDef('0.0.0.0'); // standard IPv4, unspecified, non-routable
- $this->assertDef('255.255.255.255'); // standard IPv4
-
- $this->assertDef('300.0.0.0', false); // standard IPv4, out of range
- $this->assertDef('124.15.6.89/60', false); // standard IPv4, prefix not allowed
-
- $this->assertDef('', false); // nothing
-
- }
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv6Test.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv6Test.php
deleted file mode 100644
index 083e818aa..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URI/IPv6Test.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-// test case is from Feyd's IPv6 implementation
-// we ought to disallow non-routable addresses
-
-class HTMLPurifier_AttrDef_URI_IPv6Test extends HTMLPurifier_AttrDefHarness
-{
-
- function test() {
-
- $this->def = new HTMLPurifier_AttrDef_URI_IPv6();
-
- $this->assertDef('2001:DB8:0:0:8:800:200C:417A'); // unicast, full
- $this->assertDef('FF01:0:0:0:0:0:0:101'); // multicast, full
- $this->assertDef('0:0:0:0:0:0:0:1'); // loopback, full
- $this->assertDef('0:0:0:0:0:0:0:0'); // unspecified, full
- $this->assertDef('2001:DB8::8:800:200C:417A'); // unicast, compressed
- $this->assertDef('FF01::101'); // multicast, compressed
-
- $this->assertDef('::1'); // loopback, compressed, non-routable
- $this->assertDef('::'); // unspecified, compressed, non-routable
- $this->assertDef('0:0:0:0:0:0:13.1.68.3'); // IPv4-compatible IPv6 address, full, deprecated
- $this->assertDef('0:0:0:0:0:FFFF:129.144.52.38'); // IPv4-mapped IPv6 address, full
- $this->assertDef('::13.1.68.3'); // IPv4-compatible IPv6 address, compressed, deprecated
- $this->assertDef('::FFFF:129.144.52.38'); // IPv4-mapped IPv6 address, compressed
- $this->assertDef('2001:0DB8:0000:CD30:0000:0000:0000:0000/60'); // full, with prefix
- $this->assertDef('2001:0DB8::CD30:0:0:0:0/60'); // compressed, with prefix
- $this->assertDef('2001:0DB8:0:CD30::/60'); // compressed, with prefix #2
- $this->assertDef('::/128'); // compressed, unspecified address type, non-routable
- $this->assertDef('::1/128'); // compressed, loopback address type, non-routable
- $this->assertDef('FF00::/8'); // compressed, multicast address type
- $this->assertDef('FE80::/10'); // compressed, link-local unicast, non-routable
- $this->assertDef('FEC0::/10'); // compressed, site-local unicast, deprecated
-
- $this->assertDef('2001:DB8:0:0:8:800:200C:417A:221', false); // unicast, full
- $this->assertDef('FF01::101::2', false); //multicast, compressed
- $this->assertDef('', false); // nothing
-
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URITest.php b/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URITest.php
deleted file mode 100644
index 3044367a2..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/AttrDef/URITest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/**
- * @todo Aim for complete code coverage with mocks
- */
-class HTMLPurifier_AttrDef_URITest extends HTMLPurifier_AttrDefHarness
-{
-
- function setUp() {
- $this->def = new HTMLPurifier_AttrDef_URI();
- parent::setUp();
- }
-
- function testIntegration() {
- $this->assertDef('http://www.google.com/');
- $this->assertDef('http:', '');
- $this->assertDef('http:/foo', '/foo');
- $this->assertDef('javascript:bad_stuff();', false);
- $this->assertDef('ftp://www.example.com/');
- $this->assertDef('news:rec.alt');
- $this->assertDef('nntp://news.example.com/324234');
- $this->assertDef('mailto:bob@example.com');
- }
-
- function testIntegrationWithPercentEncoder() {
- $this->assertDef(
- 'http://www.example.com/%56%fc%GJ%5%FC',
- 'http://www.example.com/V%FC%25GJ%255%FC'
- );
- }
-
- function testPercentEncoding() {
- $this->assertDef(
- 'http:colon:mercenary',
- 'colon%3Amercenary'
- );
- }
-
- function testPercentEncodingPreserve() {
- $this->assertDef(
- 'http://www.example.com/abcABC123-_.!~*()\''
- );
- }
-
- function testEmbeds() {
- $this->def = new HTMLPurifier_AttrDef_URI(true);
- $this->assertDef('http://sub.example.com/alas?foo=asd');
- $this->assertDef('mailto:foo@example.com', false);
- }
-
- function testConfigMunge() {
- $this->config->set('URI.Munge', 'http://www.google.com/url?q=%s');
- $this->assertDef(
- 'http://www.example.com/',
- 'http://www.google.com/url?q=http%3A%2F%2Fwww.example.com%2F'
- );
- $this->assertDef('index.html');
- $this->assertDef('javascript:foobar();', false);
- }
-
- function testDefaultSchemeRemovedInBlank() {
- $this->assertDef('http:', '');
- }
-
- function testDefaultSchemeRemovedInRelativeURI() {
- $this->assertDef('http:/foo/bar', '/foo/bar');
- }
-
- function testDefaultSchemeNotRemovedInAbsoluteURI() {
- $this->assertDef('http://example.com/foo/bar');
- }
-
- function testAltSchemeNotRemoved() {
- $this->assertDef('mailto:this-looks-like-a-path@example.com');
- }
-
- function testResolveNullSchemeAmbiguity() {
- $this->assertDef('///foo', '/foo');
- }
-
- function testResolveNullSchemeDoubleAmbiguity() {
- $this->config->set('URI.Host', 'example.com');
- $this->assertDef('////foo', '//example.com//foo');
- }
-
- function testURIDefinitionValidation() {
- $parser = new HTMLPurifier_URIParser();
- $uri = $parser->parse('http://example.com');
- $this->config->set('URI.DefinitionID', 'HTMLPurifier_AttrDef_URITest->testURIDefinitionValidation');
-
- generate_mock_once('HTMLPurifier_URIDefinition');
- $uri_def = new HTMLPurifier_URIDefinitionMock();
- $uri_def->expectOnce('filter', array($uri, '*', '*'));
- $uri_def->setReturnValue('filter', true, array($uri, '*', '*'));
- $uri_def->expectOnce('postFilter', array($uri, '*', '*'));
- $uri_def->setReturnValue('postFilter', true, array($uri, '*', '*'));
- $uri_def->setup = true;
-
- // Since definitions are no longer passed by reference, we need
- // to muck around with the cache to insert our mock. This is
- // technically a little bad, since the cache shouldn't change
- // behavior, but I don't feel too good about letting users
- // overload entire definitions.
- generate_mock_once('HTMLPurifier_DefinitionCache');
- $cache_mock = new HTMLPurifier_DefinitionCacheMock();
- $cache_mock->setReturnValue('get', $uri_def);
-
- generate_mock_once('HTMLPurifier_DefinitionCacheFactory');
- $factory_mock = new HTMLPurifier_DefinitionCacheFactoryMock();
- $old = HTMLPurifier_DefinitionCacheFactory::instance();
- HTMLPurifier_DefinitionCacheFactory::instance($factory_mock);
- $factory_mock->setReturnValue('create', $cache_mock);
-
- $this->assertDef('http://example.com');
-
- HTMLPurifier_DefinitionCacheFactory::instance($old);
- }
-
- function test_make() {
- $factory = new HTMLPurifier_AttrDef_URI();
- $def = $factory->make('');
- $def2 = new HTMLPurifier_AttrDef_URI();
- $this->assertIdentical($def, $def2);
-
- $def = $factory->make('embedded');
- $def2 = new HTMLPurifier_AttrDef_URI(true);
- $this->assertIdentical($def, $def2);
- }
-
- /*
- function test_validate_configWhitelist() {
-
- $this->config->set('URI.HostPolicy', 'DenyAll');
- $this->config->set('URI.HostWhitelist', array(null, 'google.com'));
-
- $this->assertDef('http://example.com/fo/google.com', false);
- $this->assertDef('server.txt');
- $this->assertDef('ftp://www.google.com/?t=a');
- $this->assertDef('http://google.com.tricky.spamsite.net', false);
-
- }
- */
-
-}
-
-// vim: et sw=4 sts=4