blob: 8bb1da7ce9877d021a4e9c72cd22b087183a5c33 [file] [log] [blame]
use strict;
use warnings;
use Test::More 0.88;
use CPAN::Meta;
delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
# 1.4 repository upgrade
{
my $label = "(version 1.4) old repository winds up in 'url'";
my $meta = CPAN::Meta->new(
{
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
dynamic_config => 1,
generated_by => 'hand',
'meta-spec' => {
version => '1.4',
url => 'http://module-build.sourceforge.net/META-spec-v1.4.html',
},
resources => {
repository => 'http://example.com/',
},
},
{ lazy_validation => 1 },
);
is_deeply(
$meta->resources,
{
repository => {
url => 'http://example.com/',
},
},
$label,
);
}
{
my $label = "(version 2 ) http in web passed through unchanged";
my $meta = CPAN::Meta->new(
{
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
dynamic_config => 1,
generated_by => 'hand',
'meta-spec' => {
version => '2',
},
resources => {
repository => {
web => 'http://example.com/',
},
},
},
{ lazy_validation => 1 },
);
is_deeply(
$meta->{resources},
{
repository => {
web => 'http://example.com/',
},
},
$label
);
}
{
my $label = "(version 2 ) http in url passed through unchanged";
my $meta = CPAN::Meta->new(
{
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
dynamic_config => 1,
generated_by => 'hand',
'meta-spec' => {
version => '2',
},
resources => {
repository => {
url => 'http://example.com/',
},
},
},
{ lazy_validation => 1 },
);
is_deeply(
$meta->{resources},
{
repository => {
url => 'http://example.com/',
},
},
$label
);
}
{
my $label = "(version 2 ) svn in url adds svn type";
my $meta = CPAN::Meta->new(
{
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
dynamic_config => 1,
generated_by => 'hand',
'meta-spec' => {
version => '2',
},
resources => {
repository => {
url => 'svn://example.com/',
},
},
},
{ lazy_validation => 1 },
);
is_deeply(
$meta->{resources},
{
repository => {
url => 'svn://example.com/',
type => 'svn',
},
},
$label
);
}
{
my $label = "(version 2 ) git in url adds svn type";
my $meta = CPAN::Meta->new(
{
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
dynamic_config => 1,
generated_by => 'hand',
'meta-spec' => {
version => '2',
},
resources => {
repository => {
url => 'git://example.com/',
},
},
},
{ lazy_validation => 1 },
);
is_deeply(
$meta->{resources},
{
repository => {
url => 'git://example.com/',
type => 'git',
},
},
$label
);
}
{
my $label = "(version 2 ) pre-existing type preserved";
my $meta = CPAN::Meta->new(
{
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
dynamic_config => 1,
generated_by => 'hand',
'meta-spec' => {
version => '2',
},
resources => {
repository => {
url => 'git://example.com/',
type => 'msysgit',
},
},
},
{ lazy_validation => 1 },
);
is_deeply(
$meta->{resources},
{
repository => {
url => 'git://example.com/',
type => 'msysgit',
},
},
$label
);
}
done_testing;