/[suikacvs]/messaging/manakai/t/util-formatter-text.t
Suika

Contents of /messaging/manakai/t/util-formatter-text.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download) (as text)
Sat Dec 6 05:07:35 2003 UTC (21 years, 4 months ago) by wakaba
Branch: MAIN
CVS Tags: before-dis2-200411, manakai-release-0-3-2, manakai-release-0-3-1, manakai-release-0-4-0, manakai-200612, HEAD
Branch point for: experimental-xml-parser-200401
Changes since 1.3: +1 -1 lines
File MIME type: application/x-troff
Changed to new syntax

1 #!/usr/bin/perl
2 use strict;
3 require Test::Simple;
4 sub OK ($$) {
5 my ($result, $expect) = @_;
6 if ($result eq $expect) {
7 ok (1);
8 } else {
9 ok (0, qq("$result" : "$expect" expected));
10 }
11 }
12
13 my @s = (
14 {
15 rule => 'BARE-TEXT ONLY RULE',
16 result => 'BARE-TEXT ONLY RULE',
17 },
18 {
19 rule => 'BARE-TEXT%undefined;BARE-TEXT',
20 result => 'BARE-TEXT[undef: undefined]BARE-TEXT',
21 },
22 {
23 rule => 'BARE-TEXT%percent;BARE-TEXT',
24 result => 'BARE-TEXT%BARE-TEXT',
25 },
26 {
27 rule => 'BARE-TEXT%percent (prefix => {>},
28 suffix => {<} );BARE-TEXT',
29 result => 'BARE-TEXT>%<BARE-TEXT',
30 },
31 {
32 rule => 'BARE-TEXT%foo;BARE-TEXT',
33 result => 'BARE-TEXT[foo:][:foo]BARE-TEXT',
34 },
35 {
36 rule => 'BARE-TEXT%bar(param=>"value");BARE-TEXT',
37 result => 'BARE-TEXTvalueBARE-TEXT',
38 },
39 {
40 rule => 'BARE-TEXT%bar(param=>{%foo;}p);BARE-TEXT',
41 result => 'BARE-TEXT[foo:][:foo]BARE-TEXT',
42 },
43 {
44 rule => '%i;BARE-TEXT%i;BARE-TEXT%i;',
45 result => '1BARE-TEXT2BARE-TEXT3',
46 },
47 {
48 rule => '%j;%j(content=>{%j;}p);%j;',
49 result => '[1[]2][5[[3[]4]]6][7[]8]',
50 },
51 {
52 rule => '%k;%k(content=>{%k;}p);%k;',
53 result => '[1[]2][3[[5[]6]]4][7[]8]',
54 },
55 {
56 rule => '%l (bare);,%l;,%l (bare => 0);,%l (bare => foo);',
57 result => '1,,0,foo',
58 },
59 );
60 Test::Simple->import (tests => scalar @s);
61
62 my $f = test_formatter->new ();
63 my $o = {};
64 for (@s) {
65 my $result = $f->replace ($_->{rule}, param => $o);
66 OK $result, $_->{result};
67 }
68
69
70 package test_formatter;
71 BEGIN {
72 require Message::Util::Formatter::Text;
73 our @ISA = q(Message::Util::Formatter::Text);
74 }
75 sub ___rule_def {+{
76 foo => {
77 before => sub {
78 my ($f, $name, $p, $o) = @_;
79 $p->{-result} .= "[$name:]";
80 },
81 after => sub {
82 my ($f, $name, $p, $o) = @_;
83 $p->{-result} .= "[:$name]";
84 },
85 },
86 bar => {
87 after => sub {
88 my ($f, $name, $p, $o) = @_;
89 $p->{-result} .= $p->{param};
90 },
91 },
92 i => {
93 after => sub {
94 my ($f, $name, $p, $o) = @_;
95 $p->{-result} .= ++$o->{param};
96 },
97 },
98 j => {
99 after => sub {
100 my ($f, $name, $p, $o) = @_;
101 $p->{-result} .= '['.++$o->{param1}.'['
102 . ($p->{content} || '')
103 .']'.++$o->{param1}.']';
104 },
105 },
106 k => {
107 before => sub {
108 my ($f, $name, $p, $o) = @_;
109 $p->{-result} .= '['.++$o->{param2}.'[%%%%'
110 .']'.++$o->{param2}.']';
111 },
112 after => sub {
113 my ($f, $name, $p, $o) = @_;
114 $p->{-result} =~ s/%%%%/$p->{content}||''/ge;
115 },
116 },
117 l => {
118 after => sub {
119 my ($f, $name, $p, $o) = @_;
120 $p->{-result} = $p->{bare};
121 },
122 },
123 }}

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24