# 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 = "
Cell 1Cell 2
Cell 3Cell 4
"; $clean->(); ok( $orig_post eq $clean_post, "Table okay if all tags are closed" ); # VALID: table without closing tr/td tags $orig_post = "
Cell 1Cell 2
Cell 3Cell 4
"; $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 1Cell 2Cell 3Cell 4"; $clean->(); ok( $clean_post !~ '(); ok( $clean_post !~ '(); ok( $clean_post !~ '(); ok( $clean_post !~ '(); ok( $clean_post !~ '(); ok( $clean_post !~ '(); ok( $clean_post eq "
foo
" || $clean_post eq "
foo
", "Fixed tbody -- optional" );