]> git.donarmstrong.com Git - liborg-parser-perl.git/blob - t/link_and_target.t
Import original source of Org-Parser 0.23
[liborg-parser-perl.git] / t / link_and_target.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 => 'link basic tests',
16     filter_elements => 'Org::Element::Link',
17     doc  => <<'_',
18 # links
19 [[link1]]
20 [[link2][description2]]
21 [[link3][description
22 *can* contain markups]]
23
24 # non-links
25 [[]]      # empty link
26 [[x][]]   # empty description
27 [[x] [x]] # there should not be a space between link & description
28 [[x
29 y] [x]]   # link cannot contain newline
30 _
31     num => 3,
32     test_after_parse => sub {
33         my %args  = @_;
34         my $doc   = $args{result};
35         my $elems = $args{elements};
36         is( $elems->[0]->link       , "link1",          "0: link");
37         ok(!$elems->[0]->description,                   "0: description");
38         is( $elems->[1]->link       , "link2",          "1: link");
39         is( $elems->[1]->description->as_string,
40             "description2",                             "1: description");
41         is( $elems->[2]->link       , "link3",          "2: link");
42         is( $elems->[2]->description->as_string,
43             "description\n*can* contain markups",       "2: description");
44     },
45 );
46
47 # TODO: target cannot contain newline
48 # TODO: radio target cannot contain newline
49
50 done_testing();
51