2007-01-20 01:40:56 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
require_once 'HTMLPurifier/AttrDefHarness.php';
|
2007-02-14 20:38:51 +00:00
|
|
|
require_once 'HTMLPurifier/AttrDef/CSS/BackgroundPosition.php';
|
2007-01-20 01:40:56 +00:00
|
|
|
|
2007-02-14 20:38:51 +00:00
|
|
|
class HTMLPurifier_AttrDef_CSS_BackgroundPositionTest extends HTMLPurifier_AttrDefHarness
|
2007-01-20 01:40:56 +00:00
|
|
|
{
|
|
|
|
|
|
|
|
function test() {
|
|
|
|
|
2007-02-14 20:38:51 +00:00
|
|
|
$this->def = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
|
2007-01-20 01:40:56 +00:00
|
|
|
|
|
|
|
// 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', 'center top');
|
|
|
|
$this->assertDef('top right', 'right top');
|
|
|
|
$this->assertDef('center left', 'left center');
|
|
|
|
$this->assertDef('center center', 'center'); // two centers collide
|
|
|
|
$this->assertDef('center right', 'right center');
|
|
|
|
$this->assertDef('bottom left', 'left bottom');
|
|
|
|
$this->assertDef('bottom center', '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%');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|