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.
57 lines
1.4 KiB
57 lines
1.4 KiB
#!/usr/bin/env perl |
|
|
|
use strict; |
|
use warnings; |
|
use utf8; |
|
|
|
use Test::More tests => 3; |
|
use Text::Dokuwiki::Parser; |
|
|
|
my @lines = split /\n/, <<EOF; |
|
| table ^ head1 ^ head2 ^ sum | |
|
^ data1 |1-1 | 1-2 | 1-3| |
|
^data2 | 2-1 | 2-222|2-3 | |
|
| data3 ^ 3-1 || 3-2 | |
|
^ data4 | 4-1 | 4-2 | ::: | |
|
EOF |
|
|
|
my $dw = Text::Dokuwiki::Parser->new; |
|
isa_ok($dw, 'Text::Dokuwiki::Parser'); |
|
|
|
my $tree = $dw->_parse_table([ @lines ]); |
|
is(ref $tree, 'ARRAY'); |
|
is_deeply($tree, [ |
|
table => {}, |
|
[tr => {}, |
|
[td => {align => 'center'}, 'table'], |
|
[th => {align => 'center'}, 'head1'], |
|
[th => {align => 'center'}, 'head2'], |
|
[th => {align => 'center'}, 'sum'], |
|
], |
|
[tr => {}, |
|
[th => {align => 'center'}, 'data1'], |
|
[td => {align => 'left'}, '1-1'], |
|
[td => {align => 'center'}, '1-2'], |
|
[td => {align => 'right'}, '1-3'], |
|
], |
|
[tr => {}, |
|
[th => {align => 'left'}, 'data2'], |
|
[td => {align => 'center'}, '2-1'], |
|
[td => {align => 'right'}, '2-222'], |
|
[td => {align => 'left'}, '2-3'], |
|
], |
|
[tr => {}, |
|
[td => {align => 'center'}, 'data3'], |
|
[th => {align => 'center', colspan => 2}, '3-1'], |
|
[td => {align => 'center', skip => 1}, ''], |
|
[td => {align => 'center', rowspan => 2}, '3-2'], |
|
], |
|
[tr => {}, |
|
[th => {align => 'center'}, 'data4'], |
|
[td => {align => 'center'}, '4-1'], |
|
[td => {align => 'center'}, '4-2'], |
|
[td => {align => 'center', skip => 1}, ':::'], |
|
], |
|
]); |
|
|
|
exit 0;
|
|
|