/
00-meta.t
96 lines (71 loc) · 2.03 KB
/
00-meta.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
use Test::More tests => 16;
use warnings;
use strict;
use lib 'lib';
BEGIN {
use_ok('VIM::Packager::MetaReader');
};
open FH , ">" , "test.vim";
print FH <<END;
"=VERSION 0.3
END
close FH;
my $sample =<<END;
# comment
=name new_plugin
# comment
=author Cornelius (cornelius.howl\@gmail.com)
=version_from test.vim # extract version infomation from this file
=vim_version < 7.2
=type syntax
=dependency
autocomplpop.vim > 0.3
# comments
rainbow.vim >= 1.2
autocomplpop.vim
| autoload/acp.vim | http://c9s.blogspot.com
| plugin/acp.vim | http://plurk.com/c9s
=script
bin/parser
bin/template_generator
=repository git://....../
END
open my $fh , "<" , \$sample;
my $meta = VIM::Packager::MetaReader->new;
ok ( $meta );
$meta->read( $fh );
close $fh;
my $meta_object = $meta->meta;
ok( $meta_object );
is_deeply(
$meta_object->{dependency} , [ {
'version' => '0.3',
'name' => 'autocomplpop.vim',
'op' => '>'
},
{
'version' => '1.2',
'name' => 'rainbow.vim',
'op' => '>='
},
{
'name' => 'autocomplpop.vim',
'required_files' => [ {
'target' => 'autoload/acp.vim',
'from' => 'http://c9s.blogspot.com'
},
{
'target' => 'plugin/acp.vim',
'from' => 'http://plurk.com/c9s'
}
],
}
]);
ok( $meta_object->{$_} ) for qw(repository script version name type author);
is( $meta_object->{repository} , 'git://....../' );
is( $meta_object->{author} , 'Cornelius (cornelius.howl@gmail.com)' );
is( $meta_object->{type} , 'syntax' );
is( $meta_object->{name} , 'new_plugin' );
is( $meta_object->{version} , 0.3 );
is_deeply( $meta_object->{script}, [ 'bin/parser', 'bin/template_generator' ]);
unlink 'test.vim';