Upgrade to Parse::CPAN::Meta 1.38
[p5sagit/p5-mst-13.2.git] / lib / Parse / CPAN / Meta / t / 11_meta_yml.t
CommitLineData
be96f5c3 1#!/usr/bin/perl
2
3# Testing of common META.yml examples
4
5BEGIN {
6 if( $ENV{PERL_CORE} ) {
7 chdir 't';
8 @INC = ('../lib', 'lib');
9 }
10 else {
11 unshift @INC, 't/lib/';
12 }
13}
14
15use strict;
16BEGIN {
17 $| = 1;
18 $^W = 1;
19}
20
21use File::Spec::Functions ':ALL';
22use Parse::CPAN::Meta::Test;
de044c36 23use Test::More tests(8, 3);
be96f5c3 24
25
26
27
28
29#####################################################################
de044c36 30# Testing YAML::Tiny's own META.yml file
be96f5c3 31
32yaml_ok(
33 <<'END_YAML',
34abstract: Read/Write YAML files with as little code as possible
35author: 'Adam Kennedy <cpan@ali.as>'
36build_requires:
37 File::Spec: 0.80
38 Test::More: 0.47
39distribution_type: module
40generated_by: Module::Install version 0.63
41license: perl
42name: YAML-Tiny
43no_index:
44 directory:
45 - inc
46 - t
47requires:
48 perl: 5.005
49version: 0.03
50END_YAML
51 [ {
52 abstract => 'Read/Write YAML files with as little code as possible',
53 author => 'Adam Kennedy <cpan@ali.as>',
54 build_requires => {
55 'File::Spec' => '0.80',
56 'Test::More' => '0.47',
57 },
58 distribution_type => 'module',
59 generated_by => 'Module::Install version 0.63',
60 license => 'perl',
61 name => 'YAML-Tiny',
62 no_index => {
63 directory => [ qw{inc t} ],
64 },
65 requires => {
66 perl => '5.005',
67 },
68 version => '0.03',
69 } ],
70 'YAML::Tiny',
71);
72
73
74
75
76
77
78#####################################################################
79# Testing a META.yml from a commercial project that crashed
80
81yaml_ok(
82 <<'END_YAML',
83# http://module-build.sourceforge.net/META-spec.html
84#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
85name: ITS-SIN-FIDS-Content-XML
86version: 0.01
87version_from: lib/ITS/SIN/FIDS/Content/XML.pm
88installdirs: site
89requires:
90 Test::More: 0.45
91 XML::Simple: 2
92
93distribution_type: module
94generated_by: ExtUtils::MakeMaker version 6.30
95END_YAML
96 [ {
97 name => 'ITS-SIN-FIDS-Content-XML',
c59d1bfa 98 version => "0.01",
be96f5c3 99 version_from => 'lib/ITS/SIN/FIDS/Content/XML.pm',
100 installdirs => 'site',
101 requires => {
102 'Test::More' => 0.45,
103 'XML::Simple' => 2,
104 },
105 distribution_type => 'module',
106 generated_by => 'ExtUtils::MakeMaker version 6.30',
107 } ],
108 'YAML::Tiny',
109);
110
111
112
113
114
115
116#####################################################################
117# Testing various failing META.yml files from CPAN
118
119yaml_ok(
120 <<'END_YAML',
121---
122abstract: Mii in Nintendo Wii data parser and builder
123author: Toru Yamaguchi <zigorou@cpan.org>
124distribution_type: module
125generated_by: Module::Install version 0.65
126license: perl
127meta-spec:
128 url: http://module-build.sourceforge.net/META-spec-v1.3.html
129 version: 1.3
130name: Games-Nintendo-Wii-Mii
131no_index:
132 directory:
133 - inc
134 - t
135requires:
136 Carp: 1.03
137 Class::Accessor::Fast: 0.3
138 File::Slurp: 9999.12
139 IO::File: 1.1
140 Readonly: 0
141 Tie::IxHash: 1.21
142 URI: 1.35
143 XML::LibXML: 1.62
144version: 0.02
145END_YAML
146 [ {
147 abstract => 'Mii in Nintendo Wii data parser and builder',
148 author => 'Toru Yamaguchi <zigorou@cpan.org>',
149 distribution_type => 'module',
150 generated_by => 'Module::Install version 0.65',
151 license => 'perl',
152 'meta-spec' => {
153 url => 'http://module-build.sourceforge.net/META-spec-v1.3.html',
154 version => '1.3',
155 },
156 name => 'Games-Nintendo-Wii-Mii',
157 no_index => {
158 directory => [ qw{ inc t } ],
159 },
160 requires => {
161 'Carp' => '1.03',
162 'Class::Accessor::Fast' => '0.3',
163 'File::Slurp' => '9999.12',
164 'IO::File' => '1.1',
165 'Readonly' => '0',
166 'Tie::IxHash' => '1.21',
167 'URI' => '1.35',
168 'XML::LibXML' => '1.62',
169 },
170 version => '0.02',
171 } ],
172 'Games-Nintendo-Wii-Mii',
173);
174
175yaml_ok(
176 <<'END_YAML',
177# http://module-build.sourceforge.net/META-spec.html
178#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
179name: Acme-Time-Baby
180version: 2.106
181version_from: Baby.pm
182installdirs: site
183requires:
184 warnings:
185
186distribution_type: module
187generated_by: ExtUtils::MakeMaker version 6.17
188END_YAML
189 [ {
190 name => 'Acme-Time-Baby',
191 version => '2.106',
192 version_from => 'Baby.pm',
193 installdirs => 'site',
194 requires => {
195 warnings => undef,
196 },
197 distribution_type => 'module',
198 generated_by => 'ExtUtils::MakeMaker version 6.17',
199 } ],
200 'Acme-Time-Baby',
de044c36 201 noyamlperl => 1,
be96f5c3 202);
203
204
205
206
207
208#####################################################################
209# File with a YAML header
210
211yaml_ok(
212 <<'END_YAML',
be96f5c3 213--- #YAML:1.0
214name: Data-Swap
215version: 0.05
216license: perl
217distribution_type: module
218requires:
219 perl: 5.6.0
220dynamic_config: 0
221END_YAML
222 [ {
223 name => 'Data-Swap',
224 version => '0.05',
225 license => 'perl',
226 distribution_type => 'module',
227 requires => {
228 perl => '5.6.0',
229 },
230 dynamic_config => '0',
231 } ],
232 'Data-Swap',
de044c36 233 nosyck => 1,
be96f5c3 234);
235
236
237
238
239
240#####################################################################
241# Various files that fail for unknown reasons
242
243SCOPE: {
244 my $content = load_ok(
245 'Template-Provider-Unicode-Japanese.yml',
246 catfile( test_data_directory(), 'Template-Provider-Unicode-Japanese.yml' ),
247 100
248 );
249 yaml_ok(
250 $content,
251 [ {
252 abstract => 'Decode all templates by Unicode::Japanese',
253 author => 'Hironori Yoshida C<< <yoshida@cpan.org> >>',
254 distribution_type => 'module',
255 generated_by => 'Module::Install version 0.65',
256 license => 'perl',
257 'meta-spec' => {
258 url => 'http://module-build.sourceforge.net/META-spec-v1.3.html',
259 version => '1.3',
260 },
261 name => 'Template-Provider-Unicode-Japanese',
262 no_index => {
263 directory => [ qw{ inc t } ],
264 },
265 requires => {
266 'Template::Config' => 0,
267 'Unicode::Japanese' => 0,
268 perl => '5.6.0',
269 version => '0',
270 },
271 version => '1.2.1',
272 } ],
273 'Template-Provider-Unicode-Japanese',
de044c36 274 noyamlperl => 1,
be96f5c3 275 );
276}
277
278SCOPE: {
279 my $content = load_ok(
280 'HTML-WebDAO.yml',
281 catfile( test_data_directory(), 'HTML-WebDAO.yml' ),
282 100
283 );
284 yaml_ok(
285 $content,
286 [ {
287 abstract => 'Perl extension for create complex web application',
288 author => [
289 'Zahatski Aliaksandr, E<lt>zagap@users.sourceforge.netE<gt>',
290 ],
291 license => 'perl',
292 name => 'HTML-WebDAO',
293 version => '0.04',
294 } ],
295 'HTML-WebDAO',
de044c36 296 nosyck => 1,
297 );
298}
299
300SCOPE: {
301 my $content = load_ok(
302 'Spreadsheet-Read.yml',
303 catfile( test_data_directory(), 'Spreadsheet-Read.yml' ),
304 100
305 );
306 yaml_ok(
307 $content,
308 [ {
309 'resources' => {
310 'license' => 'http://dev.perl.org/licenses/'
311 },
312 'meta-spec' => {
313 'version' => '1.4',
314 'url' => 'http://module-build.sourceforge.net/META-spec-v1.4.html'
315 },
316 'distribution_type' => 'module',
317 'generated_by' => 'Author',
318 'version' => 'VERSION',
319 'name' => 'Read',
320 'author' => [
321 'H.Merijn Brand <h.m.brand@xs4all.nl>'
322 ],
323 'license' => 'perl',
324 'build_requires' => {
325 'Test::More' => '0',
326 'Test::Harness' => '0',
327 'perl' => '5.006'
328 },
329 'provides' => {
330 'Spreadsheet::Read' => {
331 'version' => 'VERSION',
332 'file' => 'Read.pm'
333 }
334 },
335 'optional_features' => [
336 {
337 'opt_csv' => {
338 'requires' => {
339 'Text::CSV_XS' => '0.23'
340 },
341 'recommends' => {
342 'Text::CSV_PP' => '1.10',
343 'Text::CSV_XS' => '0.58',
344 'Text::CSV' => '1.10'
345 },
346 'description' => 'Provides parsing of CSV streams'
347 }
348 },
349 {
350 'opt_excel' => {
351 'requires' => {
352 'Spreadsheet::ParseExcel' => '0.26',
353 'Spreadsheet::ParseExcel::FmtDefault' => '0'
354 },
355 'recommends' => {
356 'Spreadsheet::ParseExcel' => '0.42'
357 },
358 'description' => 'Provides parsing of Microsoft Excel files'
359 }
360 },
361 {
362 'opt_excelx' => {
363 'requires' => {
364 'Spreadsheet::XLSX' => '0.07'
365 },
366 'description' => 'Provides parsing of Microsoft Excel 2007 files'
367 }
368 },
369 {
370 'opt_oo' => {
371 'requires' => {
372 'Spreadsheet::ReadSXC' => '0.2'
373 },
374 'description' => 'Provides parsing of OpenOffice spreadsheets'
375 }
376 },
377 {
378 'opt_tools' => {
379 'recommends' => {
380 'Tk::TableMatrix::Spreadsheet' => '0',
381 'Tk::NoteBook' => '0',
382 'Tk' => '0'
383 },
384 'description' => 'Spreadsheet tools'
385 }
386 }
387 ],
388 'requires' => {
389 'perl' => '5.006',
390 'Data::Dumper' => '0',
391 'Exporter' => '0',
392 'Carp' => '0'
393 },
394 'recommends' => {
395 'perl' => '5.008005',
396 'IO::Scalar' => '0',
397 'File::Temp' => '0.14'
398 },
399 'abstract' => 'Meta-Wrapper for reading spreadsheet data'
400 } ],
401 'Spreadsheet-Read',
402 noyamlpm => 1,
403 noyamlperl => 1,
be96f5c3 404 );
405}