#!perl
use 5.010;
use strict;
use warnings;
use FindBin '$Bin';
use lib $Bin, "$Bin/t";
use Org::Parser;
use Test::More 0.96;
require "testlib.pl";
test_parse(
name => 'link basic tests',
filter_elements => 'Org::Element::Link',
doc => <<'_',
# links
[[link1]]
[[link2][description2]]
[[link3][description
*can* contain markups]]
# non-links
[[]] # empty link
[[x][]] # empty description
[[x] [x]] # there should not be a space between link & description
[[x
y] [x]] # link cannot contain newline
_
num => 3,
test_after_parse => sub {
my %args = @_;
my $doc = $args{result};
my $elems = $args{elements};
is( $elems->[0]->link , "link1", "0: link");
ok(!$elems->[0]->description, "0: description");
is( $elems->[0]->as_text , "link1", "0: as_text");
is( $elems->[1]->link , "link2", "1: link");
is( $elems->[1]->description->as_string,
"description2", "1: description");
is( $elems->[1]->as_text , "description2", "1: as_text");
is( $elems->[2]->link , "link3", "2: link");
is( $elems->[2]->description->as_string,
"description\n*can* contain markups", "2: description");
},
);
test_parse(
name => 'RT#82334',
filter_elements => 'Org::Element::Link',
doc => <<'_',
[[link][some *description*]]
_
num => 1,
test_after_parse => sub {
my %args = @_;
my $doc = $args{result};
my $elems = $args{elements};
my $link = $elems->[0];
is($link->as_string, "[[link][some *description*]]");
},
);
# TODO: target cannot contain newline
# TODO: radio target cannot contain newline
done_testing();