Lines Matching +full:meta +full:- +full:spec
6 use CPAN::Meta;
7 use CPAN::Meta::Validator;
8 use CPAN::Meta::Converter;
9 use File::Spec;
12 use Parse::CPAN::Meta;
32 my $data_dir = IO::Dir->new( 't/data-test' );
33 my @files = sort grep { /^\w/ } $data_dir->read;
35 *_spec_version = \&CPAN::Meta::Converter::_extract_spec_version;
41 my $path = File::Spec->catfile('t','data-test',$f);
42 my $original = Parse::CPAN::Meta->load_file( $path );
47 my $cmc = CPAN::Meta::Converter->new( $original );
48 my $converted = $cmc->convert( version => 2 );
49 is ( _spec_version($converted), 2, "up converted spec version $original_v to spec version 2");
50 my $cmv = CPAN::Meta::Validator->new( $converted );
51 ok ( $cmv->is_valid, "up converted META is valid" )
52 or diag( "ERRORS:\n" . join( "\n", $cmv->errors )
56 # UPCONVERSION - partial
58 my $cmc = CPAN::Meta::Converter->new( $original );
59 my $converted = $cmc->convert( version => '1.4' );
60 … is ( _spec_version($converted), 1.4, "up converted spec version $original_v to spec version 1.4");
61 my $cmv = CPAN::Meta::Validator->new( $converted );
62 ok ( $cmv->is_valid, "up converted META is valid" )
63 or diag( "ERRORS:\n" . join( "\n", $cmv->errors )
67 # DOWNCONVERSION - partial
69 my $cmc = CPAN::Meta::Converter->new( $original );
70 my $converted = $cmc->convert( version => '1.2' );
71 …is ( _spec_version($converted), '1.2', "down converted spec version $original_v to spec version 1.…
72 my $cmv = CPAN::Meta::Validator->new( $converted );
73 ok ( $cmv->is_valid, "down converted META is valid" )
74 or diag( "ERRORS:\n" . join( "\n", $cmv->errors )
80 $converted->{build_requires},
92 my $cmc = CPAN::Meta::Converter->new( $original );
93 my $converted = $cmc->convert( version => '1.0' );
94 …is ( _spec_version($converted), '1.0', "down converted spec version $original_v to spec version 1.…
95 my $cmv = CPAN::Meta::Validator->new( $converted );
96 ok ( $cmv->is_valid, "down converted META is valid" )
97 or diag( "ERRORS:\n" . join( "\n", $cmv->errors )
102 like ( $converted->{generated_by},
103 qr(\Q$original->{generated_by}\E, CPAN::Meta::Converter version \S+$),
112 my $path = File::Spec->catfile('t','data-test','META-1_4.yml');
113 my $original = Parse::CPAN::Meta->load_file( $path );
114 ok( $original, "loaded META-1_4.yml" );
115 my $cmc = CPAN::Meta::Converter->new( $original );
116 my $up_converted = $cmc->convert( version => 2 );
117 ok ( $up_converted->{x_whatever} && ! $up_converted->{'x-whatever'},
118 "up converted 'x-' to 'x_'"
120 ok ( $up_converted->{x_whatelse},
123 ok ( $up_converted->{x_WhatNow} && ! $up_converted->{XWhatNow},
130 my $path = File::Spec->catfile('t','data-test','META-2.json');
131 my $original = Parse::CPAN::Meta->load_file( $path );
132 ok( $original, "loaded META-2.json" );
133 my $cmc = CPAN::Meta::Converter->new( $original );
134 my $down_converted = $cmc->convert( version => 1.4 );
135 ok ( $down_converted->{x_whatever},
142 my $path = File::Spec->catfile('t','data-test','gpl-1_4.yml');
143 my $original = Parse::CPAN::Meta->load_file( $path );
144 ok( $original, "loaded gpl-1_4.yml" );
145 my $cmc = CPAN::Meta::Converter->new( $original );
146 my $up_converted = $cmc->convert( version => 2 );
147 is_deeply ( $up_converted->{license},
155 my $path = File::Spec->catfile('t','data-test','resources.yml');
156 my $original = Parse::CPAN::Meta->load_file( $path );
158 my $cmc = CPAN::Meta::Converter->new( $original );
159 my $converted = $cmc->convert( version => 2 );
161 $converted->{resources},
162 { x_MailingList => 'http://groups.google.com/group/www-mechanize-users',
163 x_Repository => 'http://code.google.com/p/www-mechanize/source',
164 homepage => 'http://code.google.com/p/www-mechanize/',
165 bugtracker => {web => 'http://code.google.com/p/www-mechanize/issues/list',},
172 # specific test for round-tripping resources
174 my $path = File::Spec->catfile('t','data-test','resources.yml');
175 my $original = Parse::CPAN::Meta->load_file( $path );
177 my $cmc1 = CPAN::Meta::Converter->new( $original );
178 my $converted = $cmc1->convert( version => 2 );
179 my $cmc2 = CPAN::Meta::Converter->new( $converted );
180 my $roundtrip = $cmc2->convert( version => 1.4 );
182 $roundtrip->{resources},
183 $original->{resources},
184 "round-trip of resources (1.4->2->1.4)"
190 my $path = File::Spec->catfile('t','data-test','resources.yml');
191 my $original = Parse::CPAN::Meta->load_file( $path );
193 $original->{version} = version->new("1.64");
194 $original->{no_index}{file} = File::StringObject->new(".gitignore");
196 my $cmc = CPAN::Meta::Converter->new( $original );
197 ok( my $converted = $cmc->convert( version => 2 ), "conversion successful" );
200 # specific test for UTF-8 handling
202 my $path = File::Spec->catfile('t','data-test','unicode.yml');
203 my $original = CPAN::Meta->load_file( $path )
206 my @authors = $original->authors;
220 my $path = File::Spec->catfile('t','data-test','version-ranges-' . $suffix);
221 my $original = Parse::CPAN::Meta->load_file( $path );
223 my $cmc = CPAN::Meta::Converter->new( $original );
224 my $converted = $cmc->convert( version => $version );
226 delete $h->{generated_by};
227 delete $h->{'meta-spec'}{url};
229 _normalize_reqs($h->{$k}) if exists $h->{$k};
238 my $path = File::Spec->catfile('t','data-test','version-not-normal.json');
239 my $original = Parse::CPAN::Meta->load_file( $path );
241 my $cmc = CPAN::Meta::Converter->new( $original );
242 my $converted = $cmc->convert( version => 2 );
243 is( $converted->{prereqs}{runtime}{requires}{'File::Find'}, "v0.1.0", "normalize v0.1");
244 is( $converted->{prereqs}{runtime}{requires}{'File::Path'}, "v1.0.0", "normalize v1.0.0");
249 my $path = File::Spec->catfile('t','data-test','provides-version-missing.json');
250 my $original = Parse::CPAN::Meta->load_file( $path );
252 my $cmc = CPAN::Meta::Converter->new( $original );
253 my $converted = $cmc->convert( version => 2 );
254 is_deeply( $converted->{provides}{"Foo::Bar"}, { file => "lib/Foo/Bar.pm", version => "0.27_02" },
257 is_deeply( $converted->{provides}{"Foo::Bar::Blah"}, { file => "lib/Foo/Bar/Blah.pm" },
260 …is_deeply( $converted->{provides}{"Foo::Bar::Baz"}, { file => "lib/Foo/Bar/Baz.pm", version => "0.…
270 if (ref $hr->{$k} eq 'HASH') {
271 _normalize_reqs($hr->{$k});
273 elsif ( ! ref $hr->{$k} ) {
274 $hr->{$k} =~ s{\s+}{}g;
275 $hr->{$k} =~ s{>=\s*}{}g;
282 my $path = File::Spec->catfile('t','data-test','META-2.json');
283 my $original = Parse::CPAN::Meta->load_file( $path );
284 ok( $original, "loaded META-2.json" );
285 my $cmc = CPAN::Meta::Converter->new( $original );
286 my $cleaned_up = $cmc->convert( version => "2" );
288 $cleaned_up->{license},
293 $cleaned_up = $cmc->convert( version => "1.4" );
295 $cleaned_up->{license},
303 my $path = File::Spec->catfile('t','data-test','preserve-release-status.yml');
304 my $original = Parse::CPAN::Meta->load_file( $path );
305 ok( $original, "loaded META-2.json" );
306 my $cmc = CPAN::Meta::Converter->new( $original );
307 my $cleaned_up = $cmc->convert( version => "2" );
308 is( $cleaned_up->{release_status}, 'unstable', "release_status preserved" );