You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
224 lines
5.8 KiB
224 lines
5.8 KiB
<?php
|
|
|
|
# test - checks if a kses installation is working
|
|
# Copyright (C) 2003, 2005 Ulf Harnhammar
|
|
#
|
|
# This program is free software and open source software; you can redistribute
|
|
# it and/or modify it under the terms of the GNU General Public License as
|
|
# published by the Free Software Foundation; either version 2 of the License,
|
|
# or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
# more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along
|
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit
|
|
# http://www.gnu.org/licenses/gpl.html
|
|
#
|
|
# *** CONTACT INFORMATION ***
|
|
#
|
|
# E-mail: metaur at users dot sourceforge dot net
|
|
# Web page: http://sourceforge.net/projects/kses
|
|
# Paper mail: Ulf Harnhammar
|
|
# Ymergatan 17 C
|
|
# 753 25 Uppsala
|
|
# SWEDEN
|
|
|
|
include '../kses.php';
|
|
|
|
?>
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>kses test</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
</head>
|
|
|
|
<body>
|
|
<h1>kses test</h1>
|
|
<p>
|
|
|
|
<?php
|
|
|
|
|
|
# *** FUNCTION DEFINITIONS ***
|
|
|
|
|
|
function onetest($htmlbefore, $htmlafter, &$score, &$max, $allowed)
|
|
###############################################################################
|
|
# This function performs one kses test.
|
|
###############################################################################
|
|
{
|
|
$max++;
|
|
|
|
$htmlkses = kses($htmlbefore, $allowed);
|
|
# echo "htmlkses --".htmlspecialchars($htmlkses)."--<br>\n";
|
|
|
|
if ($htmlkses == $htmlafter)
|
|
{
|
|
echo 'OK';
|
|
$score++;
|
|
}
|
|
else
|
|
echo 'not OK';
|
|
|
|
echo "<br>\n";
|
|
} # function onetest
|
|
|
|
|
|
# *** MAIN PROGRAM ***
|
|
|
|
|
|
$max = $score = 0;
|
|
|
|
# Test #1
|
|
|
|
echo 'Test #1.. ';
|
|
$htmlbefore = 'kses \'kses\' kses "kses" kses \\kses\\';
|
|
$htmlafter = $htmlbefore;
|
|
onetest($htmlbefore, $htmlafter, $score, $max, array());
|
|
|
|
# Test #2
|
|
|
|
echo 'Test #2.. ';
|
|
$htmlbefore = 'kses <br>';
|
|
$htmlafter = 'kses ';
|
|
onetest($htmlbefore, $htmlafter, $score, $max, array());
|
|
|
|
# Test #3
|
|
|
|
echo 'Test #3.. ';
|
|
$htmlbefore = 'kses < BR >';
|
|
$htmlafter = 'kses <BR>';
|
|
onetest($htmlbefore, $htmlafter, $score, $max, array('br' => array()));
|
|
|
|
# Test #4
|
|
|
|
echo 'Test #4.. ';
|
|
$htmlbefore = 'kses > 5 <br>';
|
|
$htmlafter = 'kses > 5 <br>';
|
|
onetest($htmlbefore, $htmlafter, $score, $max, array('br' => array()));
|
|
|
|
# Test #5
|
|
|
|
echo 'Test #5.. ';
|
|
$htmlbefore = 'kses < br';
|
|
$htmlafter = 'kses <br>';
|
|
onetest($htmlbefore, $htmlafter, $score, $max, array('br' => array()));
|
|
|
|
# Test #6
|
|
|
|
echo 'Test #6.. ';
|
|
$htmlbefore = 'kses <a href=5>';
|
|
$htmlafter = 'kses <a>';
|
|
onetest($htmlbefore, $htmlafter, $score, $max, array('br' => array(),
|
|
'a' => array()));
|
|
|
|
# Test #7
|
|
|
|
echo 'Test #7.. ';
|
|
$htmlbefore = 'kses <a href=5>';
|
|
$htmlafter = 'kses <a href="5">';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
# Test #8
|
|
|
|
echo 'Test #8.. ';
|
|
$htmlbefore = 'kses <a href>';
|
|
$htmlafter = $htmlbefore;
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
# Test #9
|
|
|
|
echo 'Test #9.. ';
|
|
$htmlbefore = 'kses <a href href=5 href=\'5\' href="5" dummy>';
|
|
$htmlafter = 'kses <a href href="5" href=\'5\' href="5">';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
# Test #10
|
|
|
|
echo 'Test #10.. ';
|
|
$htmlbefore = 'kses <a href="kses\\\\kses">';
|
|
$htmlafter = $htmlbefore;
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
# Test #11
|
|
|
|
echo 'Test #11.. ';
|
|
$htmlbefore = 'kses <a href="xxxxxx">';
|
|
$htmlafter = $htmlbefore;
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => array('maxlen' => 6))));
|
|
|
|
# Test #12
|
|
|
|
echo 'Test #12.. ';
|
|
$htmlbefore = 'kses <a href="xxxxxxx">';
|
|
$htmlafter = 'kses <a>';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => array('maxlen' => 6))));
|
|
|
|
# Test #13
|
|
|
|
echo 'Test #13.. ';
|
|
$htmlbefore = 'kses <a href="687">';
|
|
$htmlafter = 'kses <a>';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => array('maxval' => 686))));
|
|
|
|
# Test #14
|
|
|
|
echo 'Test #14.. ';
|
|
$htmlbefore = 'kses <a href="xx" / >';
|
|
$htmlafter = 'kses <a href="xx" />';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => array('maxlen' => 6))));
|
|
|
|
# Test #15
|
|
|
|
echo 'Test #15.. ';
|
|
$htmlbefore = 'kses <a href="JAVA java scrIpt : SCRIPT : alert(57)">';
|
|
$htmlafter = 'kses <a href="alert(57)">';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
# Test #16
|
|
|
|
echo 'Test #16.. ';
|
|
$htmlbefore = 'kses <a href="htt  ­­'.chr(173).'P://ulf">';
|
|
$htmlafter = 'kses <a href="http://ulf">';
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
# Test #17
|
|
|
|
echo 'Test #17.. ';
|
|
$htmlbefore = 'kses <a href="/start.php"> kses <a href="start.php">';
|
|
$htmlafter = $htmlbefore;
|
|
onetest($htmlbefore, $htmlafter, $score, $max,
|
|
array('a' => array('href' => 1)));
|
|
|
|
|
|
# finished
|
|
|
|
echo "<br>Score $score out of $max\n";
|
|
|
|
if ($score != $max)
|
|
echo '<br>Something is wrong! Please contact '.
|
|
'<a href="mailto:kses-general@lists.sourceforge.net">'.
|
|
'the kses-general mailing list</a>, and tell us what '.
|
|
"operating system and PHP version you use.\n";
|
|
|
|
?>
|
|
|
|
</p>
|
|
</body>
|
|
</html>
|
|
|