1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
#============================================================= -*-perl-*-
#
# t/html.t
#
# Tests the 'HTML' plugin.
#
# Written by Andy Wardley <abw@kfs.org>
#
# Copyright (C) 2001 Andy Wardley. All Rights Reserved.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
# $Id: html.t,v 2.11 2002/11/01 14:35:12 mark Exp $
#
#========================================================================
use strict;
use lib qw( ./lib ../lib );
use Template;
use Template::Test;
use Template::Plugin::HTML;
$^W = 1;
my $DEBUG = grep(/-d/, @ARGV);
$Template::Test::DEBUG = $DEBUG;
$Template::Test::PRESERVE = $DEBUG;
#------------------------------------------------------------------------
# behaviour of html filter depends on these being available
#------------------------------------------------------------------------
use constant HAS_HTML_Entities => eval { require HTML::Entities };
use constant HAS_Apache_Util => eval { require Apache::Util;
Apache::Utils::escape_html(''); };
my $html = -d 'templates' ? 'templates/html' : '../templates/html';
die "cannot grok templates/html directory\n" unless $html;
my $h = Template::Plugin::HTML->new('foo');
ok( $h );
my $cfg = {
INCLUDE_PATH => $html,
};
my $vars = {
entities => HAS_HTML_Entities || HAS_Apache_Util || 0,
};
test_expect(\*DATA, $cfg, $vars);
__DATA__
-- test --
-- name html plugin --
[% USE HTML -%]
OK
-- expect --
OK
-- test --
-- name html filter --
[% FILTER html -%]
< & >
[%- END %]
-- expect --
< &amp; >
-- test --
-- name html entity --
[% TRY;
text =
"Lon Brocard" | html_entity;
CATCH;
error;
END;
"passed" IF text == "Léon Brocard";
"passed" IF text == "Léon Brocard";
%]
-- expect --
-- process --
[% IF entities -%]
passed
[%- ELSE -%]
html_entity error - cannot locate Apache::Util or HTML::Entities
[%- END %]
-- test --
[% USE html; html.url('my file.html') -%]
-- expect --
my%20file.html
-- test --
-- name escape --
[% USE HTML -%]
[% HTML.escape("if (a < b && c > d) ...") %]
-- expect --
if (a < b && c > d) ...
-- test --
-- name sorted --
[% USE HTML(sorted=1) -%]
[% HTML.element(table => { border => 1, cellpadding => 2 }) %]
-- expect --
<table border="1" cellpadding="2">
-- test --
-- name attributes --
[% USE HTML -%]
[% HTML.attributes(border => 1, cellpadding => 2).split.sort.join %]
-- expect --
border="1" cellpadding="2"
-- stop --
# These are tests for the now defunct 'entity' option.
# At some point this functionality should return elsewhere
# so we'll keep the tests lying around in case we need them
# again later.
-- test --
[% FILTER html(entity = 1) -%]
< & >
[%- END %]
-- expect --
< & >
-- test --
[% FILTER html(entity = 1) -%]
<foo> <bar> <baz> <boz>
[%- END %]
-- expect --
<foo> <bar> <baz> <boz>
|