|
Packit |
90fbfc |
use strict;
|
|
Packit |
90fbfc |
use warnings;
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
use Test::More;
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
use CPAN::Changes;
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $changes = CPAN::Changes->new;
|
|
Packit |
90fbfc |
$changes->add_release(
|
|
Packit |
90fbfc |
{ date => '2010-06-16',
|
|
Packit |
90fbfc |
version => '0.01',
|
|
Packit |
90fbfc |
changes => { '' => [ 'Initial release' ] },
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
0.01 2010-06-16
|
|
Packit |
90fbfc |
- Initial release
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
$changes->preamble( 'Revision history for perl module Foo::Bar' );
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
Revision history for perl module Foo::Bar
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.01 2010-06-16
|
|
Packit |
90fbfc |
- Initial release
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize with preamble' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
my $release = $changes->release( '0.01' );
|
|
Packit |
90fbfc |
$release->clear_changes;
|
|
Packit |
90fbfc |
$release->add_changes( { group => 'Group 1' }, 'Initial release' );
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
Revision history for perl module Foo::Bar
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.01 2010-06-16
|
|
Packit |
90fbfc |
[Group 1]
|
|
Packit |
90fbfc |
- Initial release
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected,
|
|
Packit |
90fbfc |
'serialize with ground and preamble' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
$changes->add_release(
|
|
Packit |
90fbfc |
{ version => '0.02',
|
|
Packit |
90fbfc |
date => '2010-06-17',
|
|
Packit |
90fbfc |
changes => { '' => [ 'New version' ] },
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
Revision history for perl module Foo::Bar
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.02 2010-06-17
|
|
Packit |
90fbfc |
- New version
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.01 2010-06-16
|
|
Packit |
90fbfc |
[Group 1]
|
|
Packit |
90fbfc |
- Initial release
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize with multiple releases' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
$changes->releases(
|
|
Packit |
90fbfc |
{ version => '0.01',
|
|
Packit |
90fbfc |
date => '2010-06-16',
|
|
Packit |
90fbfc |
changes => {
|
|
Packit |
90fbfc |
'' => [
|
|
Packit |
90fbfc |
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In quis tortor ac urna faucibus feugiat.'
|
|
Packit |
90fbfc |
]
|
|
Packit |
90fbfc |
},
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
Revision history for perl module Foo::Bar
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.01 2010-06-16
|
|
Packit |
90fbfc |
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. In quis tortor
|
|
Packit |
90fbfc |
ac urna faucibus feugiat.
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize with line-wrap' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
$changes->releases(
|
|
Packit |
90fbfc |
{ version => '0.01',
|
|
Packit |
90fbfc |
date => '2010-06-16',
|
|
Packit |
90fbfc |
note => 'Note',
|
|
Packit |
90fbfc |
changes => {
|
|
Packit |
90fbfc |
'' => [
|
|
Packit |
90fbfc |
'Test'
|
|
Packit |
90fbfc |
]
|
|
Packit |
90fbfc |
},
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
Revision history for perl module Foo::Bar
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.01 2010-06-16 Note
|
|
Packit |
90fbfc |
- Test
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize with note' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
$changes->releases(
|
|
Packit |
90fbfc |
{ version => '0.01',
|
|
Packit |
90fbfc |
date => 'Unknown',
|
|
Packit |
90fbfc |
note => '(Oops)',
|
|
Packit |
90fbfc |
changes => {
|
|
Packit |
90fbfc |
'' => [
|
|
Packit |
90fbfc |
'Test'
|
|
Packit |
90fbfc |
]
|
|
Packit |
90fbfc |
},
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
Revision history for perl module Foo::Bar
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
0.01 Unknown (Oops)
|
|
Packit |
90fbfc |
- Test
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize with unknown date and note' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
my $changes = CPAN::Changes->new;
|
|
Packit |
90fbfc |
$changes->add_release(
|
|
Packit |
90fbfc |
{ date => '',
|
|
Packit |
90fbfc |
version => '0.01',
|
|
Packit |
90fbfc |
note => '',
|
|
Packit |
90fbfc |
changes => { '' => [ 'Initial release' ] },
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
0.01
|
|
Packit |
90fbfc |
- Initial release
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize w/ defined but empty date and note' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
{
|
|
Packit |
90fbfc |
my $changes = CPAN::Changes->new;
|
|
Packit |
90fbfc |
$changes->add_release(
|
|
Packit |
90fbfc |
{ date => '',
|
|
Packit |
90fbfc |
version => '0.01',
|
|
Packit |
90fbfc |
note => '',
|
|
Packit |
90fbfc |
changes => { '' => [
|
|
Packit |
90fbfc |
'http://www.cpan.org/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz',
|
|
Packit |
90fbfc |
"\x{026B}this_entry_should_not_be_wrapped_on_the_nonbreaking_space\x{00A0}in_it_even_though_it_is_over_80_characters_long",
|
|
Packit |
90fbfc |
] },
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
);
|
|
Packit |
90fbfc |
my $expected = <
|
|
Packit |
90fbfc |
0.01
|
|
Packit |
90fbfc |
- http://www.cpan.org/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
|
|
Packit |
90fbfc |
- \x{026B}this_entry_should_not_be_wrapped_on_the_nonbreaking_space\x{00A0}in_it_even_though_it_is_over_80_characters_long
|
|
Packit |
90fbfc |
EOCHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is( $changes->serialize, $expected, 'serialize does not wrap long tokens or split on nbsp' );
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
done_testing;
|