File: wrap_length_defaults.t

package info (click to toggle)
libcpan-changes-perl 0.500005-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,964 kB
  • sloc: perl: 988; makefile: 2
file content (48 lines) | stat: -rw-r--r-- 1,703 bytes parent folder | download
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
use strict;
use warnings;

use Test::More;

# ABSTRACT: Ensure wrap lengths are expected.

use CPAN::Changes;

# Text::Wrap has a default columns= value of 76
# But in practice, this means a string length of 75, because Text::Wrap *includes* \n in its string
# length calculation. Or its an off-by-one error somewhere.
my $limit  = 75;
# There are a lot of steps here because it turns out, Text::Wrap is hateful
# and unclear.
# Offsets do not include trailing \n like vim does.
my $source = <<'EOF';
0.1.2 - 2015-06-21
 - nowrap x:68 characters long potato salmon farm test seagull xxxxx
 - nowrap x:72 characters long potato salmon farm test elephant xxxxxxxx
 - wrap x:73 characters long potato salmon farm test elephant xxxxxxxxxxx
 - wrap x:74 characters long potato salmon farm test elephant xxxxxxxxxxxx
 - wrap x:75 characters long potato salmon farm test elephant xxxxxxxxxxxxx
 - wrap x:76 characters long potato salmon farm test mammoth elephant xxxxxx
 - wrap x:77 characters long potato salmon farm test mammoth elephant xxxxxxx
 - wrap x:78 characters long potato salmon farm test mammoth elephant xxxxxxxx
 - wrap x:80 characters long potato salmon farm test mammoth elephant xxxxxxxxxx
EOF

my $reflow = CPAN::Changes->load_string($source)->serialize();
my @lines = split /\n/, $reflow;

note explain \@lines;

my $lineno = 0;
for my $line ( @lines ) {
    $lineno++;
    my ( $wrap, $wraplength ) = $line =~ /\A\s*-\s*(nowrap|wrap)\s+x:(\d+)\s+/;
    next unless defined $wrap;    # Skip the wrapped tail of each line

    next
      if cmp_ok( length $line, '<=', $limit,
        "Line $lineno expected <= wrap limit $limit" );

    diag "Wrapped Line is: \'$line\'";
}

done_testing;