File: combine.t

package info (click to toggle)
libpod-elemental-perl 0.103006-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 396 kB
  • sloc: perl: 1,471; makefile: 7
file content (98 lines) | stat: -rw-r--r-- 2,359 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!perl
use strict;
use warnings;

# PURPOSE:
# sequences of text..(blank|text)+..text should be collapsed into text
# sequences of data..(blank|data)+..data should be collapsed into data

use Test::More;
use Test::Differences;

use Pod::Eventual::Simple;
use Pod::Elemental;
use Pod::Elemental::Transformer::Pod5;

sub _pod5 { "Pod::Elemental::Element::Pod5::$_[0]" }

my $str = do { local $/; <DATA> };

my $document = Pod::Elemental::Transformer::Pod5->transform_node(
  Pod::Elemental->read_string($str),
);

my @children = grep { ! $_->isa('Pod::Elemental::Element::Generic::Blank') }
               @{ $document->children };

is(@children, 4, "four top-level elements");

isa_ok($children[0], _pod5('Ordinary'), "...first element");
isa_ok($children[1], _pod5('Ordinary'), "...second element");
isa_ok($children[2], _pod5('Region'),   "...third element");
isa_ok($children[3], _pod5('Ordinary'), "...fourth element");

{
  # first region contents
  my @children = grep { ! $_->isa('Pod::Elemental::Element::Generic::Blank') }
                 @{ $children[2]->children };

  is(@children, 7, "top-level-contained region has five non-blanks");

  isa_ok($children[0], _pod5('Ordinary'), "...1st second-level para");
  isa_ok($children[1], _pod5('Ordinary'), "...2nd second-level para");
  isa_ok($children[2], _pod5('Verbatim'), "...3rd second-level para");
  isa_ok($children[3], _pod5('Ordinary'), "...4th second-level para");
  isa_ok($children[4], _pod5('Verbatim'), "...5th second-level para");
  isa_ok($children[5], _pod5('Region'),   "...6th second-level para");
  isa_ok($children[6], _pod5('Ordinary'), "...7th second-level para");

  {
    # second region contents
    my @children = grep { ! $_->isa('Pod::Elemental::Element::Generic::Blank') }
                   @{ $children[5]->children };

    is(@children, 1, "second-level-contained region has one non-blank");

    isa_ok($children[0], _pod5('Data'), "...1st third-level para");
  }
}

done_testing;

__DATA__
=pod

Ordinary Paragraph 1.1

Ordinary Paragraph 1.2

=begin :pod_like

Ordinary Paragraph 2.1

Ordinary Paragraph 2.2

  Verbatim Paragraph 2.1

  Verbatim Paragraph 2.2

Ordinary Paragraph 2.3

  Verbatim Paragraph 2.3

=begin nonpod

Data Paragraph 3.1

  Data Paragraph 3.2

Data Paragraph 3.3

=end nonpod

Ordinary Paragraph 2.4

=end :pod_like

Ordinary Paragraph 1.3