0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-12-24 09:11:52 +00:00
htmlpurifier/tests/HTMLPurifier/AttrTransform/InputTest.php

106 lines
2.3 KiB
PHP
Raw Normal View History

<?php
class HTMLPurifier_AttrTransform_InputTest extends HTMLPurifier_AttrTransformHarness
{
public function setUp()
{
parent::setUp();
$this->obj = new HTMLPurifier_AttrTransform_Input();
}
public function testEmptyInput()
{
$this->assertResult(array());
}
public function testInvalidCheckedWithEmpty()
{
$this->assertResult(array('checked' => 'checked'), array());
}
public function testInvalidCheckedWithPassword()
{
$this->assertResult(array(
'checked' => 'checked',
'type' => 'password'
), array(
'type' => 'password'
));
}
public function testValidCheckedWithUcCheckbox()
{
$this->assertResult(array(
'checked' => 'checked',
'type' => 'CHECKBOX',
'value' => 'bar',
));
}
public function testInvalidMaxlength()
{
$this->assertResult(array(
'maxlength' => '10',
'type' => 'checkbox',
'value' => 'foo',
), array(
'type' => 'checkbox',
'value' => 'foo',
));
}
public function testValidMaxLength()
{
$this->assertResult(array(
'maxlength' => '10',
));
}
// these two are really bad test-cases
public function testSizeWithCheckbox()
{
$this->assertResult(array(
'type' => 'checkbox',
'value' => 'foo',
'size' => '100px',
), array(
'type' => 'checkbox',
'value' => 'foo',
'size' => '100',
));
}
public function testSizeWithText()
{
$this->assertResult(array(
'type' => 'password',
'size' => '100px', // spurious value, to indicate no validation takes place
), array(
'type' => 'password',
'size' => '100px',
));
}
public function testInvalidSrc()
{
$this->assertResult(array(
'src' => 'img.png',
), array());
}
public function testMissingValue()
{
$this->assertResult(array(
'type' => 'checkbox',
), array(
'type' => 'checkbox',
'value' => '',
));
}
}
// vim: et sw=4 sts=4