summaryrefslogtreecommitdiff
path: root/cpan/CPAN-Meta/t/repository.t
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/CPAN-Meta/t/repository.t')
-rw-r--r--cpan/CPAN-Meta/t/repository.t225
1 files changed, 225 insertions, 0 deletions
diff --git a/cpan/CPAN-Meta/t/repository.t b/cpan/CPAN-Meta/t/repository.t
new file mode 100644
index 0000000000..b8800d913f
--- /dev/null
+++ b/cpan/CPAN-Meta/t/repository.t
@@ -0,0 +1,225 @@
+use strict;
+use warnings;
+use Test::More 0.88;
+
+use CPAN::Meta;
+
+# 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;