]> git.donarmstrong.com Git - liborg-parser-perl.git/blob - t/footnote.t
Import original source of Org-Parser 0.23
[liborg-parser-perl.git] / t / footnote.t
1 #!perl
2
3 use 5.010;
4 use strict;
5 use warnings;
6
7 use FindBin '$Bin';
8 use lib $Bin, "$Bin/t";
9
10 use Org::Parser;
11 use Test::More 0.96;
12 require "testlib.pl";
13
14 test_parse(
15     name => 'footnote basic tests',
16     filter_elements => 'Org::Element::Footnote',
17     doc  => <<'_',
18 # footnotes
19
20  [1]
21 [fn:a]
22 [fn:b:inline definition]
23 [fn:c] definition
24 [fn::anon inline definition]
25
26 # non-footnotes
27
28 [fn:name
29 with newline]
30
31 [fn:name:definition
32 with newline]
33 _
34     num => 5,
35     test_after_parse => sub {
36         my %args  = @_;
37         my $doc   = $args{result};
38         my $fn = $args{elements};
39
40         is( $fn->[0]->name, 1, "fn0 name");
41         ok( $fn->[0]->is_ref, "fn0 is ref");
42         ok(!$fn->[0]->def, "fn0 no def");
43
44         is( $fn->[1]->name, "a", "fn1 name");
45         ok( $fn->[1]->is_ref, "fn1 is ref");
46         ok(!$fn->[1]->def, "fn1 no def");
47
48         is( $fn->[2]->name, "b", "fn2 name");
49         ok(!$fn->[2]->is_ref, "fn2 not ref");
50         is( $fn->[2]->def->as_string, "inline definition", "fn2 def");
51
52         is( $fn->[3]->name, "c", "fn3 name");
53         ok(!$fn->[3]->is_ref, "fn3 not ref");
54         is( $fn->[3]->def->as_string, "definition", "fn3 def");
55
56         ok(!$fn->[4]->name, "fn4 anon");
57         ok( $fn->[4]->is_ref, "fn4 is ref");
58         is( $fn->[4]->def->as_string, "anon inline definition", "fn4 def");
59     },
60 );
61
62 done_testing();
63