# t/cleaner-tables.t
#
# Test LJ::CleanHTML::clean_event with tables.
#
# This code was forked from the LiveJournal project owned and operated
# by Live Journal, Inc. The code has been modified and expanded by
# Dreamwidth Studios, LLC. These files were originally licensed under
# the terms of the license supplied by Live Journal, Inc, which can
# currently be found at:
#
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
#
# In accordance with the original license, this code and all its
# modifications are provided under the GNU General Public License.
# A copy of that license can be found in the LICENSE file included as
# part of this distribution.
use strict;
use warnings;
use Test::More tests => 9;
BEGIN { require "$ENV{LJHOME}/t/lib/ljtestlib.pl"; }
use LJ::CleanHTML;
use HTMLCleaner;
my $orig_post;
my $clean_post;
my $clean = sub {
$clean_post = $orig_post;
LJ::CleanHTML::clean_event( \$clean_post, { tablecheck => 1 } );
};
# VALID: standard table
$orig_post =
"
";
$clean->();
ok( $orig_post eq $clean_post, "Table okay if all tags are closed" );
# VALID: table without closing tr/td tags
$orig_post = "";
$clean->();
ok( $orig_post eq $clean_post, "Table okay if td and tr tags aren't closed" );
# INVALID: table without opening table tag, should escape all tags
$orig_post =
"| Cell 1 | Cell 2 |
| Cell 3 | Cell 4 |
";
$clean->();
ok( $clean_post !~ '";
$clean->();
ok( $clean_post !~ '";
$clean->();
ok( $clean_post !~ '";
$clean->();
ok( $clean_post !~ '";
$clean->();
ok( $clean_post !~ 'Cell 1 | Cell 2 | Cell 3 | Cell 4 | ";
$clean->();
ok( $clean_post !~ ' | | foo |
";
$clean->();
ok(
$clean_post eq ""
|| $clean_post eq "",
"Fixed tbody -- optional"
);