8 use lib $Bin, "$Bin/t";
14 my $NUM_TEST_ITEMS = 4+3+3;
17 parse_file_args => ["t/data/custom_todo_kw.org"],
18 name => 'setting: TODO',
19 filter_elements => 'Org::Element::Headline',
20 num => 3 + $NUM_TEST_ITEMS,
21 test_after_parse => sub {
23 my $elems = $args{elements};
24 my $num_test_items = 0;
26 for my $el (@$elems) {
27 my $title = $el->title->as_string;
28 my $re = qr/(?: (?:([A-Z]+)=([^;]*)) (?:;\s|\z) )/x;
29 my $h = $el->as_string; $h =~ s/\R.*//s;
30 #diag "heading='$h', ".
31 # "is_todo=".($el->is_todo//0).", is_done=".($el->is_done//0);
32 next unless $title =~ /$re/;
35 while ($title =~ s/$re//) { $v{$1} = $2 }
37 if ($v{RES} =~ /todo/) {
38 ok( $el->is_todo, "#$num_test_items is a todo ($v{NOTE})");
40 ok(!$el->is_todo, "#$num_test_items not a todo ($v{NOTE})");
42 if ($v{RES} =~ /done/) {
43 ok( $el->is_done, "#$num_test_items is a done ($v{NOTE})");
45 ok(!$el->is_done, "#$num_test_items not a done ($v{NOTE})");
49 is($num_test_items, $NUM_TEST_ITEMS, "num_test_items");