mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2024-11-14 09:18:41 +00:00
351 lines
9.7 KiB
PHP
351 lines
9.7 KiB
PHP
|
<?php
|
||
|
|
||
|
class HTMLPurifier_Strategy_ValidateAttributes_TidyTest extends HTMLPurifier_StrategyHarness
|
||
|
{
|
||
|
|
||
|
function setUp() {
|
||
|
parent::setUp();
|
||
|
$this->obj = new HTMLPurifier_Strategy_ValidateAttributes();
|
||
|
$this->config->set('HTML', 'TidyLevel', 'heavy');
|
||
|
}
|
||
|
|
||
|
function testConvertCenterAlign() {
|
||
|
$this->assertResult(
|
||
|
'<h1 align="center">Centered Headline</h1>',
|
||
|
'<h1 style="text-align:center;">Centered Headline</h1>'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testConvertRightAlign() {
|
||
|
$this->assertResult(
|
||
|
'<h1 align="right">Right-aligned Headline</h1>',
|
||
|
'<h1 style="text-align:right;">Right-aligned Headline</h1>'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testConvertLeftAlign() {
|
||
|
$this->assertResult(
|
||
|
'<h1 align="left">Left-aligned Headline</h1>',
|
||
|
'<h1 style="text-align:left;">Left-aligned Headline</h1>'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testConvertJustifyAlign() {
|
||
|
$this->assertResult(
|
||
|
'<p align="justify">Justified Paragraph</p>',
|
||
|
'<p style="text-align:justify;">Justified Paragraph</p>'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testRemoveInvalidAlign() {
|
||
|
$this->assertResult(
|
||
|
'<h1 align="invalid">Invalid Headline</h1>',
|
||
|
'<h1>Invalid Headline</h1>'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testConvertTableLengths() {
|
||
|
$this->assertResult(
|
||
|
'<td width="5%" height="10" /><th width="10" height="5%" /><hr width="10" height="10" />',
|
||
|
'<td style="width:5%;height:10px;" /><th style="width:10px;height:5%;" /><hr style="width:10px;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testTdConvertNowrap() {
|
||
|
$this->assertResult(
|
||
|
'<td nowrap />',
|
||
|
'<td style="white-space:nowrap;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testCaptionConvertAlignLeft() {
|
||
|
$this->assertResult(
|
||
|
'<caption align="left" />',
|
||
|
'<caption style="text-align:left;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testCaptionConvertAlignRight() {
|
||
|
$this->assertResult(
|
||
|
'<caption align="right" />',
|
||
|
'<caption style="text-align:right;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testCaptionConvertAlignTop() {
|
||
|
$this->assertResult(
|
||
|
'<caption align="top" />',
|
||
|
'<caption style="caption-side:top;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testCaptionConvertAlignBottom() {
|
||
|
$this->assertResult(
|
||
|
'<caption align="bottom" />',
|
||
|
'<caption style="caption-side:bottom;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testCaptionRemoveInvalidAlign() {
|
||
|
$this->assertResult(
|
||
|
'<caption align="nonsense" />',
|
||
|
'<caption />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testTableConvertAlignLeft() {
|
||
|
$this->assertResult(
|
||
|
'<table align="left" />',
|
||
|
'<table style="float:left;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testTableConvertAlignCenter() {
|
||
|
$this->assertResult(
|
||
|
'<table align="center" />',
|
||
|
'<table style="margin-left:auto;margin-right:auto;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testTableConvertAlignRight() {
|
||
|
$this->assertResult(
|
||
|
'<table align="right" />',
|
||
|
'<table style="float:right;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testTableRemoveInvalidAlign() {
|
||
|
$this->assertResult(
|
||
|
'<table align="top" />',
|
||
|
'<table />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testImgConvertAlignLeft() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foobar.jpg" alt="foobar" align="left" />',
|
||
|
'<img src="foobar.jpg" alt="foobar" style="float:left;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testImgConvertAlignRight() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foobar.jpg" alt="foobar" align="right" />',
|
||
|
'<img src="foobar.jpg" alt="foobar" style="float:right;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testImgConvertAlignBottom() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foobar.jpg" alt="foobar" align="bottom" />',
|
||
|
'<img src="foobar.jpg" alt="foobar" style="vertical-align:baseline;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testImgConvertAlignMiddle() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foobar.jpg" alt="foobar" align="middle" />',
|
||
|
'<img src="foobar.jpg" alt="foobar" style="vertical-align:middle;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testImgConvertAlignTop() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foobar.jpg" alt="foobar" align="top" />',
|
||
|
'<img src="foobar.jpg" alt="foobar" style="vertical-align:top;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testImgRemoveInvalidAlign() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foobar.jpg" alt="foobar" align="outerspace" />',
|
||
|
'<img src="foobar.jpg" alt="foobar" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testBorderConvertHVSpace() {
|
||
|
$this->assertResult(
|
||
|
'<img src="foo" alt="foo" hspace="1" vspace="3" />',
|
||
|
'<img src="foo" alt="foo" style="margin-top:3px;margin-bottom:3px;margin-left:1px;margin-right:1px;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testHrConvertSize() {
|
||
|
$this->assertResult(
|
||
|
'<hr size="3" />',
|
||
|
'<hr style="height:3px;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testHrConvertNoshade() {
|
||
|
$this->assertResult(
|
||
|
'<hr noshade />',
|
||
|
'<hr style="color:#808080;background-color:#808080;border:0;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testHrConvertAlignLeft() {
|
||
|
$this->assertResult(
|
||
|
'<hr align="left" />',
|
||
|
'<hr style="margin-left:0;margin-right:auto;text-align:left;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testHrConvertAlignCenter() {
|
||
|
$this->assertResult(
|
||
|
'<hr align="center" />',
|
||
|
'<hr style="margin-left:auto;margin-right:auto;text-align:center;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testHrConvertAlignRight() {
|
||
|
$this->assertResult(
|
||
|
'<hr align="right" />',
|
||
|
'<hr style="margin-left:auto;margin-right:0;text-align:right;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testHrRemoveInvalidAlign() {
|
||
|
$this->assertResult(
|
||
|
'<hr align="bottom" />',
|
||
|
'<hr />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testBrConvertClearLeft() {
|
||
|
$this->assertResult(
|
||
|
'<br clear="left" />',
|
||
|
'<br style="clear:left;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testBrConvertClearRight() {
|
||
|
$this->assertResult(
|
||
|
'<br clear="right" />',
|
||
|
'<br style="clear:right;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testBrConvertClearAll() {
|
||
|
$this->assertResult(
|
||
|
'<br clear="all" />',
|
||
|
'<br style="clear:both;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testBrConvertClearNone() {
|
||
|
$this->assertResult(
|
||
|
'<br clear="none" />',
|
||
|
'<br style="clear:none;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testBrRemoveInvalidClear() {
|
||
|
$this->assertResult(
|
||
|
'<br clear="foo" />',
|
||
|
'<br />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testUlConvertTypeDisc() {
|
||
|
$this->assertResult(
|
||
|
'<ul type="disc" />',
|
||
|
'<ul style="list-style-type:disc;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testUlConvertTypeSquare() {
|
||
|
$this->assertResult(
|
||
|
'<ul type="square" />',
|
||
|
'<ul style="list-style-type:square;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testUlConvertTypeCircle() {
|
||
|
$this->assertResult(
|
||
|
'<ul type="circle" />',
|
||
|
'<ul style="list-style-type:circle;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testUlConvertTypeCaseInsensitive() {
|
||
|
$this->assertResult(
|
||
|
'<ul type="CIRCLE" />',
|
||
|
'<ul style="list-style-type:circle;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testUlRemoveInvalidType() {
|
||
|
$this->assertResult(
|
||
|
'<ul type="a" />',
|
||
|
'<ul />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testOlConvertType1() {
|
||
|
$this->assertResult(
|
||
|
'<ol type="1" />',
|
||
|
'<ol style="list-style-type:decimal;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testOlConvertTypeLowerI() {
|
||
|
$this->assertResult(
|
||
|
'<ol type="i" />',
|
||
|
'<ol style="list-style-type:lower-roman;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testOlConvertTypeUpperI() {
|
||
|
$this->assertResult(
|
||
|
'<ol type="I" />',
|
||
|
'<ol style="list-style-type:upper-roman;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testOlConvertTypeLowerA() {
|
||
|
$this->assertResult(
|
||
|
'<ol type="a" />',
|
||
|
'<ol style="list-style-type:lower-alpha;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testOlConvertTypeUpperA() {
|
||
|
$this->assertResult(
|
||
|
'<ol type="A" />',
|
||
|
'<ol style="list-style-type:upper-alpha;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testOlRemoveInvalidType() {
|
||
|
$this->assertResult(
|
||
|
'<ol type="disc" />',
|
||
|
'<ol />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testLiConvertTypeCircle() {
|
||
|
$this->assertResult(
|
||
|
'<li type="circle" />',
|
||
|
'<li style="list-style-type:circle;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testLiConvertTypeA() {
|
||
|
$this->assertResult(
|
||
|
'<li type="A" />',
|
||
|
'<li style="list-style-type:upper-alpha;" />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function testLiConvertTypeCaseSensitive() {
|
||
|
$this->assertResult(
|
||
|
'<li type="CIRCLE" />',
|
||
|
'<li />'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|